{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 项目：用线性回归预测房价数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析目标"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据分析报告的目的是，基于已有的房屋销售价格，以及有关该房屋的属性，进行线性回归分析，从而利用得到的线性回归模型，能对以下未知售价的房屋根据属性进行价格预测：\n",
    "\n",
    "面积为6500平方英尺，有4个卧室、2个厕所，总共2层，不位于主路，无客人房，带地下室，有热水器，没有空调，车位数为2，位于城市首选社区，简装修。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 简介"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据集`house_price.csv`记录了超过五百栋房屋的交易价格，以及房屋的相关属性信息，包括房屋面积、卧室数、厕所数、楼层数、是否位于主路、是否有客房，等等。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`house_price.csv`每列的含义如下：\n",
    "- price：房屋出售价格\n",
    "- area：房屋面积，以平方英尺为单位\n",
    "- bedrooms：卧室数\n",
    "- bathrooms：厕所数\n",
    "- stories：楼层数\n",
    "- mainroad：是否位于主路\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- guestroom：是否有客房\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- basement：是否有地下室\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- hotwaterheating：是否有热水器\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- airconditioning：是否有空调\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- parking：车库容量，以车辆数量为单位\n",
    "- prefarea：是否位于城市首选社区\n",
    "   - yes  是\n",
    "   - no\t  否\n",
    "- furnishingstatus：装修状态\n",
    "   - furnished       精装\n",
    "   - semi-furnished\t 简装\n",
    "   - unfurnished     毛坯"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入数据分析所需要的库。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入数据分析所需要的库，并通过Pandas的`read_csv`函数，将原始数据文件\"house_price.csv\"里的数据内容，解析为DataFrame并赋值给变量`original_house_price`。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>mainroad</th>\n",
       "      <th>guestroom</th>\n",
       "      <th>basement</th>\n",
       "      <th>hotwaterheating</th>\n",
       "      <th>airconditioning</th>\n",
       "      <th>parking</th>\n",
       "      <th>prefarea</th>\n",
       "      <th>furnishingstatus</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>13300000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12250000</td>\n",
       "      <td>8960</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>12250000</td>\n",
       "      <td>9960</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>semi-furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12215000</td>\n",
       "      <td>7500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>3</td>\n",
       "      <td>yes</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11410000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>no</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      price  area  bedrooms  bathrooms  stories mainroad guestroom basement  \\\n",
       "0  13300000  7420         4          2        3      yes        no       no   \n",
       "1  12250000  8960         4          4        4      yes        no       no   \n",
       "2  12250000  9960         3          2        2      yes        no      yes   \n",
       "3  12215000  7500         4          2        2      yes        no      yes   \n",
       "4  11410000  7420         4          1        2      yes       yes      yes   \n",
       "\n",
       "  hotwaterheating airconditioning  parking prefarea furnishingstatus  \n",
       "0              no             yes        2      yes        furnished  \n",
       "1              no             yes        3       no        furnished  \n",
       "2              no              no        2      yes   semi-furnished  \n",
       "3              no             yes        3      yes        furnished  \n",
       "4              no             yes        2       no        furnished  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "original_house_price = pd.read_csv(\"house_price.csv\")\n",
    "original_house_price.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估和清理数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在这一部分中，我们将对在上一部分建立的`original_house_price`DataFrame所包含的数据进行评估和清理。\n",
    "\n",
    "主要从两个方面进行：结构和内容，即整齐度和干净度。\n",
    "\n",
    "数据的结构性问题指不符合“每个变量为一列，每个观察值为一行，每种类型的观察单位为一个表格”这三个标准；数据的内容性问题包括存在丢失数据、重复数据、无效数据等。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为了区分开经过清理的数据和原始的数据，我们创建新的变量`cleaned_house_price`，让它为`original_house_price`复制出的副本。我们之后的清理步骤都将被运用在`cleaned_house_price`上。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "cleaned_house_price = original_house_price.copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据整齐度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>mainroad</th>\n",
       "      <th>guestroom</th>\n",
       "      <th>basement</th>\n",
       "      <th>hotwaterheating</th>\n",
       "      <th>airconditioning</th>\n",
       "      <th>parking</th>\n",
       "      <th>prefarea</th>\n",
       "      <th>furnishingstatus</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>13300000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12250000</td>\n",
       "      <td>8960</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>12250000</td>\n",
       "      <td>9960</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>semi-furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12215000</td>\n",
       "      <td>7500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>3</td>\n",
       "      <td>yes</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11410000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>no</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>10850000</td>\n",
       "      <td>7500</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>semi-furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>10150000</td>\n",
       "      <td>8580</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>semi-furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>10150000</td>\n",
       "      <td>16200</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>unfurnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9870000</td>\n",
       "      <td>8100</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>furnished</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>9800000</td>\n",
       "      <td>5750</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>1</td>\n",
       "      <td>yes</td>\n",
       "      <td>unfurnished</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      price   area  bedrooms  bathrooms  stories mainroad guestroom basement  \\\n",
       "0  13300000   7420         4          2        3      yes        no       no   \n",
       "1  12250000   8960         4          4        4      yes        no       no   \n",
       "2  12250000   9960         3          2        2      yes        no      yes   \n",
       "3  12215000   7500         4          2        2      yes        no      yes   \n",
       "4  11410000   7420         4          1        2      yes       yes      yes   \n",
       "5  10850000   7500         3          3        1      yes        no      yes   \n",
       "6  10150000   8580         4          3        4      yes        no       no   \n",
       "7  10150000  16200         5          3        2      yes        no       no   \n",
       "8   9870000   8100         4          1        2      yes       yes      yes   \n",
       "9   9800000   5750         3          2        4      yes       yes       no   \n",
       "\n",
       "  hotwaterheating airconditioning  parking prefarea furnishingstatus  \n",
       "0              no             yes        2      yes        furnished  \n",
       "1              no             yes        3       no        furnished  \n",
       "2              no              no        2      yes   semi-furnished  \n",
       "3              no             yes        3      yes        furnished  \n",
       "4              no             yes        2       no        furnished  \n",
       "5              no             yes        2      yes   semi-furnished  \n",
       "6              no             yes        2      yes   semi-furnished  \n",
       "7              no              no        0       no      unfurnished  \n",
       "8              no             yes        2      yes        furnished  \n",
       "9              no             yes        1      yes      unfurnished  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从头部的10行数据来看，数据符合“每个变量为一列，每个观察值为一行，每种类型的观察单位为一个表格”，因此不存在结构性问题。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据干净度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来通过`info`，对数据内容进行大致了解。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 545 entries, 0 to 544\n",
      "Data columns (total 13 columns):\n",
      " #   Column            Non-Null Count  Dtype \n",
      "---  ------            --------------  ----- \n",
      " 0   price             545 non-null    int64 \n",
      " 1   area              545 non-null    int64 \n",
      " 2   bedrooms          545 non-null    int64 \n",
      " 3   bathrooms         545 non-null    int64 \n",
      " 4   stories           545 non-null    int64 \n",
      " 5   mainroad          545 non-null    object\n",
      " 6   guestroom         545 non-null    object\n",
      " 7   basement          545 non-null    object\n",
      " 8   hotwaterheating   545 non-null    object\n",
      " 9   airconditioning   545 non-null    object\n",
      " 10  parking           545 non-null    int64 \n",
      " 11  prefarea          545 non-null    object\n",
      " 12  furnishingstatus  545 non-null    object\n",
      "dtypes: int64(6), object(7)\n",
      "memory usage: 55.5+ KB\n"
     ]
    }
   ],
   "source": [
    "cleaned_house_price.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从输出结果来看，`cleaned_house_price`共有545条观察值，变量不存在缺失值。\n",
    "\n",
    "数据类型方面，我们已知`mainroad`（是否位于主路）、`guestroom`（是否有客房）、`basement`（是否有地下室）、`hotwaterheating`（是否有热水器）、`airconditioning`（是否有空调）、`prefarea`（是否位于城市首选社区）、`furnishingstatus`（装修状态）都是分类数据，可以把数据类型都转换为Category。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "cleaned_house_price[\"mainroad\"] = cleaned_house_price[\"mainroad\"].astype(\"category\")\n",
    "cleaned_house_price[\"guestroom\"] = cleaned_house_price[\"guestroom\"].astype(\"category\")\n",
    "cleaned_house_price[\"basement\"] = cleaned_house_price[\"basement\"].astype(\"category\")\n",
    "cleaned_house_price[\"hotwaterheating\"] = cleaned_house_price[\"hotwaterheating\"].astype(\"category\")\n",
    "cleaned_house_price['airconditioning'] = cleaned_house_price['airconditioning'].astype(\"category\")\n",
    "cleaned_house_price['prefarea'] = cleaned_house_price['prefarea'].astype(\"category\")\n",
    "cleaned_house_price['furnishingstatus'] = cleaned_house_price['furnishingstatus'].astype(\"category\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 545 entries, 0 to 544\n",
      "Data columns (total 13 columns):\n",
      " #   Column            Non-Null Count  Dtype   \n",
      "---  ------            --------------  -----   \n",
      " 0   price             545 non-null    int64   \n",
      " 1   area              545 non-null    int64   \n",
      " 2   bedrooms          545 non-null    int64   \n",
      " 3   bathrooms         545 non-null    int64   \n",
      " 4   stories           545 non-null    int64   \n",
      " 5   mainroad          545 non-null    category\n",
      " 6   guestroom         545 non-null    category\n",
      " 7   basement          545 non-null    category\n",
      " 8   hotwaterheating   545 non-null    category\n",
      " 9   airconditioning   545 non-null    category\n",
      " 10  parking           545 non-null    int64   \n",
      " 11  prefarea          545 non-null    category\n",
      " 12  furnishingstatus  545 non-null    category\n",
      "dtypes: category(7), int64(6)\n",
      "memory usage: 30.3 KB\n"
     ]
    }
   ],
   "source": [
    "cleaned_house_price.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 处理缺失数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从`info`方法的输出结果来看，`cleaned_house_price`不存在缺失值，因此不需要对缺失数据进行处理。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 处理重复数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据数据变量的含义以及内容来看，允许变量重复，我们不需要对此数据检查是否存在重复值。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 处理不一致数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不一致数据可能存在于所有分类变量中，我们要查看是否存在不同值实际指代同一目标的情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "mainroad\n",
       "yes    468\n",
       "no      77\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"mainroad\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "guestroom\n",
       "no     448\n",
       "yes     97\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"guestroom\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "basement\n",
       "no     354\n",
       "yes    191\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"basement\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "hotwaterheating\n",
       "no     520\n",
       "yes     25\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"hotwaterheating\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "airconditioning\n",
       "no     373\n",
       "yes    172\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"airconditioning\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "prefarea\n",
       "no     417\n",
       "yes    128\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"prefarea\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "furnishingstatus\n",
       "semi-furnished    227\n",
       "unfurnished       178\n",
       "furnished         140\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price[\"furnishingstatus\"].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从以上输出结果来看，均不存在不一致数据。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 处理无效或错误数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以通过DataFrame的`describe`方法，对数值统计信息进行快速了解。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>parking</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>5.450000e+02</td>\n",
       "      <td>545.000000</td>\n",
       "      <td>545.000000</td>\n",
       "      <td>545.000000</td>\n",
       "      <td>545.000000</td>\n",
       "      <td>545.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>4.766729e+06</td>\n",
       "      <td>5150.541284</td>\n",
       "      <td>2.965138</td>\n",
       "      <td>1.286239</td>\n",
       "      <td>1.805505</td>\n",
       "      <td>0.693578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.870440e+06</td>\n",
       "      <td>2170.141023</td>\n",
       "      <td>0.738064</td>\n",
       "      <td>0.502470</td>\n",
       "      <td>0.867492</td>\n",
       "      <td>0.861586</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.750000e+06</td>\n",
       "      <td>1650.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>3.430000e+06</td>\n",
       "      <td>3600.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>4.340000e+06</td>\n",
       "      <td>4600.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>5.740000e+06</td>\n",
       "      <td>6360.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.330000e+07</td>\n",
       "      <td>16200.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              price          area    bedrooms   bathrooms     stories  \\\n",
       "count  5.450000e+02    545.000000  545.000000  545.000000  545.000000   \n",
       "mean   4.766729e+06   5150.541284    2.965138    1.286239    1.805505   \n",
       "std    1.870440e+06   2170.141023    0.738064    0.502470    0.867492   \n",
       "min    1.750000e+06   1650.000000    1.000000    1.000000    1.000000   \n",
       "25%    3.430000e+06   3600.000000    2.000000    1.000000    1.000000   \n",
       "50%    4.340000e+06   4600.000000    3.000000    1.000000    2.000000   \n",
       "75%    5.740000e+06   6360.000000    3.000000    2.000000    2.000000   \n",
       "max    1.330000e+07  16200.000000    6.000000    4.000000    4.000000   \n",
       "\n",
       "          parking  \n",
       "count  545.000000  \n",
       "mean     0.693578  \n",
       "std      0.861586  \n",
       "min      0.000000  \n",
       "25%      0.000000  \n",
       "50%      0.000000  \n",
       "75%      1.000000  \n",
       "max      3.000000  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cleaned_house_price.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从以上统计信息来看，`cleaned_house_price`里不存在脱离现实意义的数值。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 探索数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在着手推断统计学分析之前，我们可以先借助数据可视化，探索数值变量的分布，以及与房价存在相关性的变量，为后续的进一步分析提供方向。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 设置图标色盘为\"pastel\"\n",
    "sns.set_palette(\"pastel\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  房价分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5TlCpIHsl19+af4nejV621N/1v79+8XXr8spJCREbr75ZlefnY+7lue0+tp0wpF+8PAkyCnq16yg9Jpz+l3oxD2tLFEYfwtW0tdLR881OM2eQpFd2bJl5YYbbvD51wwA4BkC2TyEhoZK8+bNze1kJ72lrttZRyez09n7OkqptzRbtGiR58/R2/Oab6llq3z5urLS29E7duxw9bl27dom8Mn6nHr7WqsXePqcVl9bfHy8pKamyoMPPuhzr1lB6TVn/V2or776yvW7KIy/Bato1YhHHnnEfM1aKi03mnpw4MABn3/NAAAesnq2mR0sWbLEzLyfP3++Y9euXY4hQ4Y4ypYt6zh+/Lg5/tBDDzleeOEF1/kTJkxwhIaGOv7zn/84jh075mrJycnmuH595plnHBs3bnQcPHjQsWrVKkezZs0c9erVc6SkpPjsdels8C+++MJx4MABR0JCgqNv376O8PBwx86dO92uXZ9jxYoVjp9++snM8q9du7bj0qVLRXZdBbk2p1tvvdXM6M/OV14zZ1+2bdtmmv4Tnjx5svn+8OHD5rhel16f06+//uooUaKE49lnn3Xs3r3bERcX5wgKCnKsXLnS49+XL17XwoULHcHBweZ6sv4700oZTk8//bRj7dq15jVbv369o1OnTo4KFSo4Tpw4UWTXBQDwHgJZD02fPt0RHR1tAlQtVbRp0ybXsdtvv92UZnKqWbOm+R9x9qalgNTFixcdnTt3dlSsWNEREhJizh88eHCRBg0Fua7hw4e7zq1cubLj7rvvdmzduvWKElyjR482xzUwuvPOOx179+51WCE/16b27NljXqcvv/zyiufypddszZo1Of59Oa9Hv+r1ZX9M06ZNze+iTp06ppRafn5fvnhd+v3Vzlf6oaRKlSrmmqpVq2a29+/fX6TXBQDwnmL6H09HbwEAAABfQY4sAAAAbIlAFgAAALZEIAsAAABbIpAFAACALRHIAgAAwJYIZAEAAGBLBLIAAACwJQJZAAAA2BKBLALeoUOHpFixYrJ9+3aru4JC9M0330iPHj2katWq5vVdvnx5vh4/btw487jsLTIy0mt9BgDkD4EsAl6NGjXk2LFjcuONN1rdFRSiCxcuSExMjMTFxRXo8c8884z5u8jaGjVqJH369Cn0vgIACoZAFgEtLS1NgoKCJCoqSoKDg63uDgpRt27d5NVXX5V77703x+OpqakmWK1WrZoZZW3VqpWsXbvWdbxkyZLm78LZkpKSZNeuXTJo0KAivAoAwNUQyMKvdOjQQYYNG2ZamTJlpEKFCjJ69GhxOBzmeK1ateSVV16RAQMGSOnSpWXIkCE5phbs3LlT7rnnHnNOqVKlpH379nLgwAHX8ffee08aNmwo4eHh0qBBA5kxY4Yl14uC07+RjRs3ypIlS+Snn34yI61du3aVffv25Xi+vuY33HCD+VsAAPgGAln4nffff9+Mrm7ZskXefvttmTx5sglCnN58801zy3nbtm0myM3u6NGjctttt0lYWJh8/fXXkpCQII8++qhkZGSY4wsXLpQxY8bIa6+9Jrt375bXX3/dPI/+XNhDYmKizJs3T+Lj401gWrduXTM6e+utt5r92aWkpJjXndFYAPAt3EuFX+a8TpkyxYyy1q9fX3bs2GG2Bw8ebI7fcccd8vTTT7vO1xHZrDSnUkdzdaQuJCTE7NOROKexY8fKW2+9Jb179zbbtWvXNrec33nnHRk4cGARXSWuhf5NZGZmur2uznSD8uXLX3H+smXLJDk5mdcXAHwMgSz8TuvWrU0Q69SmTRsTeGrgolq0aHHVx2uKgY7SOYPY7BOINMVAR+acgbHS0VoNfmEP58+fN7nROtquX7PS3NjsdERfU00qV65chL0EAOSFQBYBJ6/ySREREVcNgNTs2bPN5KCssgdE8F0333yz+WBz4sSJPHNeDx48KGvWrJGPP/64yPoHAPAMgSz8zubNm922N23aJPXq1fM40GzSpInJd01PT79iVFZH5LQu6a+//ir9+/cv1H6jcOmHjv3797sFpDraXq5cOZNSoK+fTvrT0XoNbE+ePCmrV682r3/37t1dj5s7d65UqVLFVEEAAPgWJnvBLyfyjBw5Uvbu3SuLFy+W6dOny1NPPZWv2eznzp2Tvn37yg8//GBmsf/73/82z6diY2Nl/PjxMm3aNPnll19MvqVOENJJZfAd+tppgKpN6d+Efq8T9ZS+ZhrIar605lL36tVLvv/+e4mOjnY9x+XLl2X+/Pny8MMPM+IOAD6IEVn4HQ1OLl26JC1btjTBhwaxWmbLUzrZR6sVPPvss3L77beb52jatKm0a9fOHH/sscekRIkSMmnSJHOOpircdNNNMnz4cC9eFQpSis1Zdi0nOtquH0q05aZ48eJy5MgRL/UQAHCtijmu9k4P2DB40aBz6tSpVncFAAB4GakFAAAAsCUCWQAAANgSqQUAAACwJUZkAQAAYEsEsgAAALAlAlkAAADYEoEsAAAAbIlAFgAAALZEIAsAAABbIpAFAACALRHIAgAAwJYIZAEAACB29P8A5EEmz5usq98AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams[\"figure.figsize\"] = [7.00, 3.50]\n",
    "plt.rcParams[\"figure.autolayout\"] = True\n",
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='price', ax=axes[0])\n",
    "sns.boxplot(cleaned_house_price, y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "房价呈右偏态分布，说明数据集中的大多数房子价格中等，但有一些价格很高的极端值，使得均值被拉高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 面积分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AAAA/ollbgAAAGBLBLIAAACwJQJZAAAA2BKBrI/RVcu0sLjrVqVKFef5+Ph46devn1n8IV++fNK5c+e7FpM4d+6ctG3bVvLkySPFihWToUOHStL/LYVq2b59u9StW9ck5leoUEEWLVokdrZjxw5p166dKb6s79nq1avdzmsquVbFKFGihOTOnVsiIiLkxIkTbm10UY3u3bubGohal7hnz55y48YNtzaHDh2Spk2bSq5cuUzx74kTJ951LStXrjT/z7RNzZo1Zf369eJL7+Urr7xy1+9o69at3drwXgIAMoNA1gdVr15dfvnlF+e2c+dO57nBgwfLmjVrzB94XcJXl/jt1KmT8/ydO3dMEHv79m2z7O/ixYtNkKpBnOX06dOmTfPmzSUqKkoGDRokr732mmzcuFHsSusO165dW2bPnp3qeQ2SZsyYIfPmzTPLHufNm1datWplPhhYNPA6evSobN68WdauXWsCut69e7utXNOyZUsJDw+XAwcOyKRJk8wHj/nz5zvb6HvetWtXE7gdPHjQLPKh25EjR8RX3kulgavr7+iyZcvczvNeAgAyRasWwHe8++67jtq1a6d6LjY21hEcHOxYuXKl89jx48e1aoUjMjLS7K9fv97xyCOPOC5duuRsM3fuXEdISIgjISHB7A8bNsxRvXp1t+d+6aWXHK1atXL4An0/Vq1a5dxPTk52hIWFOSZNmuT2XubMmdOxbNkys3/s2DHzffv27XO2+eqrrxwBAQGOn3/+2ezPmTPHUbBgQef7qIYPH+6oXLmyc//FF190tG3b1u16GjZs6Hj99dcdvvBeqh49ejjat2+f5vfwXgIAMosRWR+kt7z1tm758uXNyJamCigduUpMTDS3xS1627VMmTISGRlp9vVRb8G6LiahI486AqYjZFYb1+ew2ljP4Wt0BFoX2nB9zbp0XsOGDd3eN70FrqvLWbS9LsGpI7hWm2bNmplllV3ft+joaLl69apfvbeamqJpK5UrV5Y+ffrIb7/95jzHewkAyCwCWR+jwZWmAujKZnPnzjVBmOYRXr9+3QRj+odfgwRXGrTqOaWPKVdEs/YzaqPB7u+//y6+xnrdqb1m1/dEAzNXQUFBUqhQoSx5b63zvkDTCj7//HPZunWrfPjhhybFpU2bNiatRfFeAgD8bmUv/C8NCCy1atUyga3mEa5YscJMUgI8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",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='area', ax=axes[0])\n",
    "sns.boxplot(cleaned_house_price, y='area', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "面积的分布与房价相似，也呈右偏态分布。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 房价与面积的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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BvCBiUajxs6dO3Pb3HbbbUZbW5uRSqXU7S9/+cvGMccck/daF110kRLSYWX//v3GzJkzjd/97nfG6aefnhOynDN7rr76auNDH/qQ4+OZTMYYP3688Z3vfCd3H+YykUiokznAyQfz+MILL+S2+c///E8jEokY27dvV7d/+MMfGiNGjMjNo37to446yggb5557rvHJT34y776//Mu/VBc5wDkrxHqhrOYcfeITn1DvmZnFixcb//2//3cjyLiJMvOPdmy3bds2dZtzZj9nb7/9tjFp0iQlQvHD3SxkG33OnOYN17W//du/NZyol2sqUwuqxL59+9TfkSNHqr9r165Vy0xYitNgOWPq1KmyatUqdRt/sbQxbty43DbLli1TPZH//Oc/57Yx70Nvo/cRRrDMgWUM63Fxzuz51a9+JYsWLZK/+qu/Uss+xx13nNx55525x7ds2SI7d+7MO2YsMy1evDhv3rAch/1osD1aOq9evTq3zWmnnSbxeDxv3pAy88EHH0iYOPnkk+Wxxx6TN954Q91++eWX5ZlnnpGzzz5b3eaceVPNOaq376z12oBlYcwT4JwVkslk5NJLL1VL2sccc0zB45wz+zl76KGHZNasWeoYcG3Ad9OcflAv11QK2Sp9oJDnecopp8jcuXPVfbgA4AulT14afFjwmN7G/OHRj+vH3LbBh+zQoUMSNu6991558cUXVY6xFc6ZPZs3b5bbbrtNZs6cKY8++qh87nOfky9+8Yvy7//+73nHbXfM5jnBic5MU1OT+uFVzNyGhWuuuUb++q//Wp20m5ublfjHdxQ5doBz5k0158hpm7DPIfITkTN78cUX5/rbc84K+da3vqXmAOc1OzhnhezevVvlCKPW5KyzzpLf/va38vGPf1z+8i//Uv7whz/U1TW1qeKvQFSE8U9/+pOK+BBn3nrrLbnyyivld7/7nUq0J/5/KCES8Y1vfEPdhijD5+3222+X5cuX13p4geTnP/+5/OQnP5Gf/vSnKsKzbt06JWRRNME5I9UAkbBPfOITqmAOP0SJPYga3nLLLSrAgcg18X9dABdccIFcddVV6v8XLFggzz77rLo2nH766VIvMCJbYa644gr5zW9+I0888YRMnjw5d//48eOlt7dX9u7dm7c9qgXxmN7GWj2ob3ttg1/3qCIO2wkLvyJR+Yhf0/iHX47/9m//pv4f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",
      "text/plain": [
       "<Figure size 700x350 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot(cleaned_house_price, x='area', y='price')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从散点图来看，能大致看出一些正相关关系，但关系的强度需要后续通过计算相关性来得到。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 卧室数与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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lpiY6Ngkp8+g26xZsxzbDBkyxOSkhYaGOpUrV3a6dOniLF261PEXtuZ93XnnnU50dLT5/3LNNdeY/d27dzu2WrhwodOwYUMnLCzMqVevnjNjxgxvN8nv2Nq/2tyf+lP/aVNfaXP/uNDH+sIg/Y/3wmgAAAAgf5jsBQAAACsRyAIAAMBKBLIAAACwEoEsAAAArEQgCwAAACsRyAIAAMBKBLIAAACwEoEsAAAArEQgC+t07NhRRowYUaj3TE5OlnLlyhXqPQHAF9Bnwp8RyAIAAMBKBLJALpw9e9bbTQAAa9BnorgQyMJK58+fl2HDhklUVJRUqlRJnnrqKXEcx5zLzMyU0aNHyzXXXCORkZHSqlUrWbVq1SWPxeLi4qRUqVJy2223yW+//eZxfsKECdK0aVN56623pGbNmhIeHm6Op6amSp8+faR06dJStmxZueOOO+TQoUMe7502bZpce+21EhoaKnXr1pX33nvP43xQUJC88cYb0qtXL/P9ExISZN26dbJ7927zCFDb3LZtW9mzZ4/7Pd9++6106tRJypQpY75vixYtZNOmTYX+5wrAP9Fn0mf6LQewzE033eSULl3aefzxx50ffvjBef/9951SpUo5M2bMMOcffPBBp23bts6aNWuc3bt3Oy+88IITFhbm/Pjjj+b8+vXrnRIlSjjPPfecs3PnTufVV191ypUr50RFRbm/x/jx453IyEjnlltucTZv3ux8++23zoULF5ymTZs67du3dzZt2mTu06JFC9Mel08//dQJCQlxpk6dau790ksvOSVLlnS+/PJL9zX6z+6aa65xPvroI3NN3759nRo1ajidO3d2Fi9e7OzYscNp3bq1+d4uDRo0cO69917n+++/N5/j448/drZs2VJMf+IAbEafSZ/pzwhkYR3tBBMSEpysrCz3sTFjxphje/fuNZ3g/v37Pd7TpUsXJykpyXx99913O7feeqvH+TvvvPOSTlk714yMDPexpUuXmnunpqa6j23fvt10shs2bDD7+sPgoYce8rj3gAEDPL6fXj927Fj3/rp168yxmTNnuo99+OGHTnh4uHu/TJkyTnJycp7/rACAPhP+jNQCWKl169bmcZNLmzZtZNeuXbJ161a5cOGC1KlTxzzKcm2rV692P3b6/vvvzaOz7PT9F4uPj5fKlSu79/V9sbGxZnOpX7++mbmr51zXtGvXzuM+uu8679K4cWP311WrVjWvjRo18jh25swZOX78uNkfNWqUPPjgg9K1a1d59tlnPR6hAcDV0GfSZ/qrYG83AChMJ0+elJIlS0pKSop5zU4757zQvKuiEhIS4v7a9cMlp2NZWVnu/LN77rlH/ud//ke++OILGT9+vMyZM8fkqgFAftFnwnaMyMJK33zzjcf++vXrpXbt2tKsWTMzupCRkSHXXXedx1atWjVzrU4UyOn9V6PvS0tLM5vLjh075OjRo2aUwXXN119/7fE+3XedLwgdMRk5cqQsXbpU+vXrJ7NmzSrwPQEEBvpM+kx/xYgsrKQzYfXR0R//+EfZvHmzvPbaa/LSSy+ZjmvgwIEyePBgs6+d9OHDh2XFihXm0VTPnj3lscceM4+uXnzxRTObdsmSJbJ48eKrfk99RKWPsvT+U6ZMMbOA//SnP8lNN90kLVu2NNc88cQTZlaufl+9fuHChfLpp5/K8uXL8/1ZT58+be57++23m9nA+/btk40bN0r//v3zfU8AgYU+kz7Tb3k7SRfIz8SFP/3pT84jjzzilC1b1ilfvrzz5JNPuicynD171hk3bpyZ1aqTD6Kjo53bbrvN+e6779z30EkC1atXdyIiIpzevXs7L7744iUTF5o0aXLJ99aJEX/4wx/M7FydTKCTEtLT0z2uef31151atWqZ712nTh3n3Xff9Tiv/+zmzZvn3v/555/NsX/961/uYytXrjTHjhw54mRmZjp33XWXExsb64SGhjoxMTHOsGHDnNOnTxfSnygAf0afSZ/pz4L0P94OpgEAAIC8IkcWAAAAViKQBQAAgJUIZAEAAGAlAlkAAABYiUAWAAAAViKQBQAAgJUIZAEAAGAlAlkAAABYiUAWAAAAViKQBQAAgJUIZAEAAGAlAlkAAACIjf4fr18owM9Qi4wAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='bedrooms', ax=axes[0])\n",
    "sns.barplot(cleaned_house_price, x='bedrooms', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中房子的卧室数范围为1-6个，其中大多房子有2-4个。\n",
    "\n",
    "从平均房价与卧室数之间的柱状图来看，当卧室数小于5个时，卧室数多的房子价格也相应高，但一旦多于5个，房价并不一定相应更高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 洗手间数与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='bathrooms', ax=axes[0])\n",
    "sns.barplot(cleaned_house_price, x='bathrooms', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据集中房子洗手间数量最少1个，最多4个，其中为1个的数量最多。\n",
    "\n",
    "从平均房价与洗手间数之间的柱状图来看，洗手间多的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 楼层数与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Opz8Aqo7izoGvFGpxsiqHbhq167t/toAAIq1ePFivXGM2vxFTa51zFWoWbOmDrN2o9YhVztEOsqV1iUH4J1KvSGCGg+riqNntrBXXnnFHXUDABSycOFCeemll/Qwr7lz5zrPd+rUSR588EGxm+zsbBk6dKjzWPVKBwYGWlonAAYE2VmzZsns2bN149mgQQNuWQBABVB3wxxbehemtu1WoQ4A7KZUQXbJkiWSkJAgd999t/trBAAoUpMmTWT37t0SERHhcn7dunUSGRlpWb0AwKgge+HCBfnTn/7k/toAAIqlxsdOmjRJzp8/r8eD7tixQ1auXCnx8fHy8ssvW109ADAjyE6YMEFWrFghjz/+uPtrBAAotu0NCAiQxx57TH777Tf561//qlcveP7552XkyJFWVw8AzAiyqjdg6dKl8vHHH0vbtm31GrKFzZs3z131AwAUMmrUKF1UkFUz9evWrWt1lQDArCC7Z88euf766/XXycnJLs8x8QsAym+y18WLF6VZs2ZSrVo1XZQDBw44N6UBADspVZD95JNP3F8TAMAVjRkzRsaNG6eDbGHbt2/XY2Q3b94snuCdHScr5H1yzrmu1JCYdEr8As5VyHvf1qVOhbwPgHLYEAEAUPG+/vprvavXpbp27apXMygttSatups2derUMtYQAAzoke3Tp88VhxBs2rSpLHUCABRBtbtnz5697HxGRoZzl6+S2rlzp7z44ot6vgMA2KJHVo2PbdeunbNERUXpJbm++uoradOmjftrCQCQXr166aW2CodW9bU616NHjxK/npospiaOqd3CatWq5ebaAoCH9sjOnz+/yPMzZ87UDSMAwP2efvppHWZbtGghPXv21Oc+++wzyczMLNWdMLUm7eDBg6V///4yZ86cYq/LycnRxUG9HwB43RjZu+66S1555RV3viQA4Hfq7pdaNeaOO+6Q9PR0Pcxg9OjR8t1330nr1q1L9FqrVq3Sd9FUb+4fUdcEBwc7S3h4eBl+CgCwuEe2OFu3bhV/f393viQAoBC1AcJTTz1VptdITU2VBx54QDZs2HBVbXZcXJzeVaxwjyxhFoCxQXb48OEux2qrxOPHj8uuXbvY7QsA3Ej1wKreVl9fX/31lVzthK2kpCTdo9uhQweXsbZbtmyRf//733oYQaVKlZzP+fn56QIAXhFk1a2lwlQDq8ZszZ49WwYMGOCuugGA7anJtWlpaXoHL/W1WrlAdR5cSp2/2pUL+vXrJ3v37nU5N3bsWGnZsqU88sgjLiHWk1X1rybjpi9zOQZgL6UKssuXL3d/TQAARe7mVadOHefX7lCjRo3LxtRWr15dQkNDSzzW1koqvPsFVLe6GgBMHSOrbk/t379ff92qVStp3769u+oFABCRiIgI/ZibmyuzZs3Sw7eaNGlidbUAwNwgq8ZWjRw5Um+HWLNmTX3uzJkzeqMENRPW0XsAAHCPKlWqyH//+99ym4fgKdvbAkC5L781ZcoUvezLvn375PTp07okJyfrmaz3339/aV4SAPAHhg0bJmvWrLG6GgBgdo/sunXr5OOPP5bIyEiX9Q0XLVrEZC8AKCfNmjXTk2q/+OIL6dixox7XWhgdCQDsplRBNj8/X9/mupQ6p54DALjfsmXL9HAuNT9BlUsnPhFkAdhNqYJs37599WLaK1eu1ItzK8eOHZNp06bpZV0AAO5XeNUCxxJcKsACgF2VaoysWjBbjYdt3LixNG3aVBc1i1adW7hwoftrCQBw9sqqJbLUjlyqqK9ffvllq6sFAOb0yKqtCdUe3WqcrNrjW1HjZfv37+/u+gEAfjd9+nSZN2+ennDbrVs359bg6m7Y0aNH9fhZALCTEgXZTZs2yeTJk2Xbtm0SFBQkN954oy5KRkaGXkt2yZIl0rNnz/KqLwDY1uLFi+Wll16SO++803nulltu0VvTqnBLkAVgNyUaWrBgwQKZOHGiDrFFbVt777336t4CAID7qU0ROnXqdNl5tYLBxYsXLakTABgTZL/55hsZNGhQsc+rpbcunUkLAHCPu+++W/fKXmrp0qUyatQoS+oEAMYMLThx4kSRy245X6xyZTl58qQ76gUAKGay10cffSRdu3bVx9u3b9fjY0ePHi2xsbHO67g7BsAOShRkr7nmGr2D13XXXVfk83v27JEGDRq4q24AgEJU+9uhQwf99aFDh/Rj7dq1dVHPObAkFwC7KFGQvemmm/Q+32p4gVr2pbBz587JjBkz5Oabb3Z3HQEAIvLJJ59YXQUAMDfIPvbYY/Luu+9K8+bN9eoFLVq00OfVElxqe9q8vDx59NFHy6uuAAAAQOmCbL169eTLL7+U++67T+Li4lx2lhk4cKAOs+oaAAAAwOM2RIiIiJAPPvhAfv31Vzl48KAOs82aNZNatWqVTw0BAAAAd21Rq6jg2rlzZ+nSpUupQ+yWLVtkyJAhEhYWpnt116xZ4/K8CslqJxs1gSwgIEDvHHbgwAGXa06fPq2XnVFr29asWVPGjx8vWVlZpf2xAAAA4O1B1h2ys7OlXbt2ekhCUZ555hn517/+pXcLU0vMVK9eXQ9hOH/+vPMaFWL37dsnGzZskLVr1+pwfM8991TgTwEAAAAjhha4U3R0tC5FUb2xaicxNcFs6NCh+txrr72mx+CqntuRI0fK/v37Zd26dbJz507nbjcLFy7Uqys8++yzuqcXAAAA3snSHtkrOXz4sKSlpenhBIW3wb3hhhtk69at+lg9quEEhbdsVNf7+vrqHtzi5OTkSGZmpksBAACAWTw2yKoQq1y6CoI6djynHuvWrXvZ7mIhISHOa4oSHx+vQ7GjhIeHl8vPAAAAABsG2fKklg7LyMhwltTUVKurBAAAAG8JsvXr19ePJ06ccDmvjh3Pqcf09HSX5y9evKhXMnBcUxQ/Pz+9ykHhAgB2sXjxYmnbtq2z/evWrZt8+OGHVlcLALwnyDZp0kSH0Y0bNzrPqbGsauyranQV9XjmzBlJSkpyXrNp0ybJz8/XY2kBAJdr2LChzJ07V7edu3btkr59++pJtWoFGAAwiaWrFqj1XtWmCoUneO3evVuPcW3UqJFMnTpV5syZozdcUMH28ccf1ysRDBs2TF8fGRkpgwYNkokTJ+olunJzc/XWuWpFA1YsAICiqfW7C3vyySd1L+22bdukVatWltULAIwKsqonoE+fPs7j2NhY/RgTEyMJCQny8MMP67Vm1bqwque1R48eerktf39/5/e88cYbOrz269dPr1YwYsQIvfYsAOCP5eXlydtvv63bWsfdLgAwhaVBtnfv3nq92OKo3b5mz56tS3FU7+2KFSvKqYYA4J327t2rg6vaYCYwMFBWr14tUVFRxS5ZqIoDSxYC8BQeO0YWAFB+WrRooYdyqXkH9913n74T9u233xZ5LUsWAvBUBFkAsKGqVavKddddJx07dtRBVW0X/vzzzxd5LUsWAvBUlg4tAAB4BrXaS+HhA5cuWagKAHgagiwA2IzqYY2Ojtarw5w9e1bPM9i8ebOsX7/e6qoBQIkQZAHAZtRGMqNHj5bjx4/rMa9qcwQVYm+88UarqwYAJUKQBQCbWbZsmdVVAAC3YLIXAAAAjESQBQAAgJEIsgAAADASQRYAAABGIsgCAADASARZAAAAGIkgCwAAACMRZAEAAGAkgiwAAACMRJAFAACAkQiyAAAAMBJBFgAAAEYiyAIAAMBIBFkAAAAYiSALAAAAIxFkAQAAYCSCLAAAAIxEkAUAAICRCLIAAAAwEkEWAAAARiLIAgAAwEgEWQAAABiJIAsANhMfHy+dO3eWGjVqSN26dWXYsGGSkpJidbUAoMQIsgBgM59++qlMmjRJtm3bJhs2bJDc3FwZMGCAZGdnW101ACiRyiW7HABgunXr1rkcJyQk6J7ZpKQk6dWrl2X1AoCSokcWAGwuIyNDP4aEhFhdFQAoEXpkAcDG8vPzZerUqdK9e3dp3bp1kdfk5OTo4pCZmVmBNQSA4tEjCwA2psbKJicny6pVq644OSw4ONhZwsPDK7SOAFAcgiwA2NTkyZNl7dq18sknn0jDhg2LvS4uLk4PP3CU1NTUCq0nABSHoQUAYDMFBQUyZcoUWb16tWzevFmaNGlyxev9/Px0AQBPQ5AFABsOJ1ixYoUkJibqtWTT0tL0eTVsICAgwOrqAcBVY2gBANjM4sWL9RCB3r17S4MGDZzlzTfftLpqAFAi9MgCgA2HFgCAN6BHFgAAAEYiyAIAAMBIHh1kZ86cKT4+Pi6lZcuWzufPnz+vJy2EhoZKYGCgjBgxQk6cOGFpnQEAAFAxPDrIKq1atZLjx487y+eff+58btq0afL+++/L22+/LZ9++qn8/PPPMnz4cEvrCwAAgIrh8ZO9KleuLPXr17/svJpxu2zZMr2ETN++ffW55cuXS2RkpGzbtk26du1qQW0BAABQUTy+R/bAgQMSFhYm1157rYwaNUqOHj2qzyclJUlubq7079/fea0adtCoUSPZunXrFV9T7Rmu9govXAAAAGAWjw6yN9xwgyQkJMi6dev0uoeHDx+Wnj17ytmzZ/UC3lWrVpWaNWu6fE+9evWci3sXh33DAQAAzOfRQwuio6OdX7dt21YH24iICHnrrbfKtPuM2jc8NjbWeax6ZAmzAAAAZvHoHtlLqd7X5s2by8GDB/W42QsXLsiZM2dcrlGrFhQ1prYwtWd4UFCQSwEAAIBZjAqyWVlZcujQIb2VYseOHaVKlSqyceNG5/MpKSl6DG23bt0srScAAABsPrTgwQcflCFDhujhBGpprRkzZkilSpXkzjvv1GNbx48fr4cIhISE6F7VKVOm6BDLigUAAADez6OD7E8//aRD6y+//CJ16tSRHj166KW11NfK/PnzxdfXV2+EoFYiGDhwoLzwwgtWVxsAAAB2D7KrVq264vP+/v6yaNEiXQAAAGAvRo2RBQAAABwIsgAAADCSRw8tAAB3UKuZnDp1yi2vVbt2bb2DIADAegRZAF4fYiMjI+W3335zy+tVq1ZN9u/fT5gFAA9AkAVs2Ktop55F9ZmpEPvw069IeNMWZXqt1EMp8swj4/Rr2uGzAwBPR5AFbNiraMeeRRVim0W1t7oaAAA3IsgCNutVVOhZBAB4A4IsYBB6FQEA+P9YfgsAAABGIsgCgM1s2bJFhgwZImFhYeLj4yNr1qyxukoAUCoEWQCwmezsbGnXrh3bewMwHmNkAcBmoqOjdQEA0xFkAQBXlJOTo4tDZmampfUBAAeGFgAArig+Pl6Cg4OdJTw83OoqAYBGkAUAXFFcXJxkZGQ4S2pqqtVVAgCNoQUAgCvy8/PTBQA8DT2yAAAAMBI9sgBgM1lZWXLw4EHn8eHDh2X37t0SEhLClsUAjEKQBQCb2bVrl/Tp08d5HBsbqx9jYmIkISHBwpoBQMkQZAHAZnr37i0FBQVWVwMAyowxsgAAADASQRYAAABGIsgCAADASARZAAAAGIkgCwAAACMRZAEAAGAkgiwAAACMRJAFAACAkQiyAAAAMBJBFgAAAEYiyAIAAMBIBFkAAAAYiSALAAAAIxFkAQAAYCSCLAAAAIxEkAUAAICRCLIAAAAwEkEWAAAARiLIAgAAwEgEWQAAABiJIAsAAAAjeU2QXbRokTRu3Fj8/f3lhhtukB07dlhdJQDwaLSbAEznFUH2zTfflNjYWJkxY4Z89dVX0q5dOxk4cKCkp6dbXTUA8Ei0mwC8gVcE2Xnz5snEiRNl7NixEhUVJUuWLJFq1arJK6+8YnXVAMAj0W4C8AbGB9kLFy5IUlKS9O/f33nO19dXH2/dutXSugGAJ6LdBOAtKovhTp06JXl5eVKvXj2X8+r4u+++K/J7cnJydHHIyMjQj5mZmVf1nllZWfrx4L7dcu63bCmrY4cP6Ef1i8Xx2mWlfinl5+d73GulpKR49Gfnzp/Vna/n6Z+bXf7NOT439ZldbXvhuK6goEBMbTdL2mb+lnVWvF1mpl+pvs/bPxs+l6LxuZTscylRu1lguGPHjqmfsuDLL790Of/QQw8VdOnSpcjvmTFjhv4eCoVCqaiSmppaYGq7SZtJoVDEQ9tN43tka9euLZUqVZITJ064nFfH9evXL/J74uLi9CQHB9Xzc/r0aQkNDRUfH58/fE/1l0J4eLikpqZKUFCQG34K8Jm6H5+pZ3ymqkfh7NmzEhYWJqa2m2VtM8sT/86Lx2dTND4Xz/9cStJuGh9kq1atKh07dpSNGzfKsGHDnI2sOp48eXKR3+Pn56dLYTVr1izxe6v/0Fb/x/Y2fKbux2dq/WcaHBwsJreb7mozyxP/zovHZ1M0PhfP/lyutt00PsgqqqcgJiZGOnXqJF26dJEFCxZIdna2no0LALgc7SYAb+AVQfYvf/mLnDx5UqZPny5paWly/fXXy7p16y6byAAA+D+0mwC8gVcEWUXdDituKIG7qVtsahHxS2+1ofT4TN2Pz9T9vO0zrch2s7x4238Td+KzKRqfi3d9Lj5qxpfVlQAAAABstyECAAAA7IkgCwAAACMRZAEAAGAkgmwJbdmyRYYMGaIX6VULga9Zs8bqKhktPj5eOnfuLDVq1JC6devqNS0dW4qidBYvXixt27Z1rgXYrVs3+fDDD62ulleZO3eu/v9/6tSpVlfF1miPL0ebWjTaRe9t2wiyJaTWWWzXrp0sWrTI6qp4hU8//VQmTZok27Ztkw0bNkhubq4MGDBAf84onYYNG+rGKCkpSXbt2iV9+/aVoUOHyr59+6yumlfYuXOnvPjii/qXIqxFe3w52tSi0S56b9vGqgVloP5qWb16tXNnHJSdWtdS9SKoxrhXr15WV8drhISEyD//+U8ZP3681VUxWlZWlnTo0EFeeOEFmTNnjl57VW0kAOvRHheNNrV4tIve0bbRIwuPkpGR4WxgUHZ5eXmyatUq3RujbqWhbFRP1+DBg6V///5WVwW4KrSpl6Nd9K62zWs2RID51F7valxO9+7dpXXr1lZXx2h79+7VDfT58+clMDBQ91RFRUVZXS2jqV98X331lb79BpiANtUV7aJ3tm0EWXjUX4TJycny+eefW10V47Vo0UJ2796te2PeeecdiYmJ0bcWabRLJzU1VR544AE95tDf39/q6gBXhTbVFe2id7ZtjJEtA8ZkuY/aJjMxMVHPQm7SpInV1fE66nZR06ZN9UB+lJyaDX/rrbdKpUqVXG5PqjbA19dXcnJyXJ5DxaM9dkWb+sdoF8Ur2jZ6ZGEp9XfUlClT9C+gzZs30+CW4y1G1SChdPr166dvSxY2duxYadmypTzyyCMe39DDPmhTrx7tonhF20aQLcXMvoMHDzqPDx8+rG9VqIH0jRo1srRupt76WrFihe45UOsepqWl6fPBwcESEBBgdfWMFBcXJ9HR0frf49mzZ/Xnq36hrV+/3uqqGUv927x0jGH16tUlNDSUsYcWoj2+HG1q0WgXvbdtI8iWkFp/rk+fPs7j2NhY/ajG2iQkJFhYM3MXqVZ69+7tcn758uUyZswYi2pltvT0dBk9erQcP35c//JSawKqxvrGG2+0umqAW9EeX442tWi0i96LMbIAAAAwEuvIAgAAwEgEWQAAABiJIAsAAAAjEWQBAABgJIIsAAAAjESQBQAAgJEIsgAAADASQRYAAABGIsgCbtC4cWNZsGCB1dUAAGPQbsId2NkLtqS2ajxz5oysWbPGLa938uRJvT91tWrV3PJ6AOBpaDfhiSpbXQHAZBcuXJCqVatKnTp1rK4KABiBdhPuxNACeLV33nlH2rRpIwEBARIaGir9+/eXhx56SF599VVJTEwUHx8fXTZv3qyv37t3r/Tt29d5/T333CNZWVkuPRLDhg2TJ598UsLCwqRFixZF3iJTvRYTJkzQDXVQUJB+zW+++cb5vPq6T58+UqNGDf18x44dZdeuXRX62QBAUWg3YRJ6ZOG1jh8/Lnfeeac888wzcuutt8rZs2fls88+k9GjR8vRo0clMzNTli9frq8NCQmR7OxsGThwoHTr1k127twp6enpulGdPHmyJCQkOF9348aNuhHdsGFDse99++2360b9ww8/lODgYHnxxRelX79+8v333+v3GjVqlLRv314WL14slSpVkt27d0uVKlUq5HMBgOLQbsI4aows4I2SkpLU+O+CH3/88bLnYmJiCoYOHepybunSpQW1atUqyMrKcp773//+V+Dr61uQlpbm/L569eoV5OTkuHxvREREwfz58/XXn332WUFQUFDB+fPnXa5p2rRpwYsvvqi/rlGjRkFCQoIbf1oAKDvaTZiGoQXwWu3atdN/zatbZOov/Zdeekl+/fXXYq/fv3+//h41+cChe/fukp+fLykpKc5z6vXU+K7iqNtf6raausUWGBjoLIcPH5ZDhw7pa2JjY3WvhbplN3fuXOd5ALAS7SZMQ5CF11K3ntRtLHWbKioqShYuXKjHZqmGsSwKN9hFUY1xgwYN9G2vwkU16mqcmTJz5kzZt2+fDB48WDZt2qTrt3r16jLVCwDKinYTpiHIwqupCQmqd2DWrFny9ddf6x4B1fCpx7y8PJdrIyMjda+AGvPl8MUXX4ivr69zcsLV6NChg6SlpUnlypXluuuucym1a9d2Xte8eXOZNm2afPTRRzJ8+HDnuDMAsBLtJkxCkIXX2r59uzz11FN6VquapPDuu+/qdQtVw6tmy+7Zs0f/tX/q1CnJzc3VEwn8/f0lJiZGkpOT5ZNPPpEpU6bI3XffLfXq1bvq91W3vdTEBzVLVzW2P/74o3z55Zfy6KOP6rqcO3dOT4RQM36PHDmiG301SULVCwCsRLsJ07BqAbyWmiG7ZcsWvbyLmmkbEREhzz33nERHR0unTp10g6ge1S0t1fj27t1b1q9fLw888IB07txZL9I9YsQImTdvXol7Mz744APdAI8dO1b/Eqhfv7706tVLN+zq1t0vv/yiZwGfOHFC9zaongXV+wEAVqLdhGnY2QsAAABGYmgBAAAAjESQBQAAgJEIsgAAADASQRYAAABGIsgCAADASARZAAAAGIkgCwAAACMRZAEAAGAkgiwAAACMRJAFAACAkQiyAAAAMBJBFgAAAGKi/wchpftlTGiUAgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='stories', ax=axes[0])\n",
    "sns.barplot(cleaned_house_price, x='stories', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 车库数与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "sns.histplot(cleaned_house_price, x='parking', ax=axes[0])\n",
    "sns.barplot(cleaned_house_price, x='parking', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中房子的车库数范围为0-3个，不带车库的房子数量是最多的，其次是1个和2个。\n",
    "\n",
    "从平均房价与楼层数之间的柱状图来看，车库多的房子价格也相应高，但超过2个后，房价并不一定相应更高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否在主路与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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k2lCZteuXY/6OIImADRDUlKSRowYobfeeksXXnhhQ3g0t2+88cbDHp+cnGyvxnJyctqt3nhiXvwJAIg2/s5a7midzHoETQBoJtOhnDp1qkaOHKmTTjpJDz/8sCorK+0qdADA4QiaANBMl19+uXbu3Kk777xT27dv1wknnKDXXnvtsAVCAICDCJoA0AJmmPxIQ+Voe2bqgdkc/9ApCEBb4u8sunyRb1uXDgAAALQCG7YDAAAgKgiaAAAAiAqCJgAAAKKCoAkAAICoIGgCAAAgKgiaAABHjR8/XjfffLPuuOMO5eXl2SM977rrroavFxcXa/LkycrIyLAnt1x22WWHHQUKHOrpp5+2R77W1NQ0ud+c7HXllVfaz1966SWdeOKJSklJUe/evTVjxgwFg0H7NbMpj/k7LCoqslsfmaMWzd8pWoagCQBw3FNPPaX09HQtXrxYDzzwgO6++2698cYb9phPEzLNOfELFy60923cuNFung8czaWXXqpQKKS//vWvDfeVlpbqlVde0bXXXqv33ntPV111lW655RatXr1ajz/+uGbPnq17773XPvbFF1/UQw89ZO9ft26d5s6dqyFDhjj4G8Um9tEEADje0TSBwLzw1zNHfJ5xxhk688wzNXHiRG3atEmFhYX2ayYUDBo0SEuWLNGoUaMcrBxud8MNN2jz5s3629/+Zm8/+OCDevTRR7V+/XqdddZZ9u9r+vTpDY9/5plnbGd969at9rEmZK5cuVKJiYkO/haxjY4mAMBxQ4cObXK7S5cutvu0Zs0aGzDrQ6YxcOBA5eTk2K8BR3P99ddr/vz52rJli71tOpZXX321fD6fPvnkE9s5N1My6i/z+G3btunAgQO2I1pVVWWH1M39c+bMaRhWR/NxBCUAwHGHdoxMEDDD5sCxGD58uIYNG2bna5599tlatWqVHTo3Kioq7JzMiy+++LDvM3M2zZubtWvX6s0337RTNkx39L//+7/tFA46nM1H0AQAuNaAAQNUUlJir8ZD5/v27bOdTeDbXHfddXr44YdtV3PChAkNf0dmEZAJkn369PnG701NTdWkSZPsNW3aNPXv318rVqyw34vmIWgCAFzLBAOzAGPKlCk2LJihS9NZOu200zRy5Einy0MMuOKKK3T77bdr1qxZtrNZ784779T5559vV5Vfcskl8vv9djjdzMm855577DC7mTs8evRopaWl2fmbJnj26NHD0d8n1jBHEwDgWmYI3WxBk5ubq3HjxtngaebMPf/8806XhhiRnZ2t733ve3YOptnaqN4555yjefPm2TmcZlHZmDFj7Crz+iBp5gGbcDp27Fg7h9gMob/88st2yyQ0H6vOAQBAXDOry81OBb/+9a+dLsVzCJoAACAu7d27VwsWLLBD42Zub79+/ZwuyXOYowkAAOJ21bkJm/fffz8h0yF0NAEAABAVLAYCAABAVBA0AQAAEBUETQAAAEQFQRMAAABRQdAEAABAVBA0AQBwuauvvrrJqTZuY45rNCfpAIdiH00AAFzuV7/6ldiNELGIoAkAQAyc132s6urqlJiY2Cb1AM3F0DkAAG1o/Pjxuummm3TrrbcqNzdX+fn5mjVrliorK3XNNdcoMzNTffr00auvvmofHwqF9KMf/Ui9evVSamqqPcHGdDCPNnRufsbNN9+sO+64Q3l5eSooKNBdd93V5Ht8Pp8ee+wxXXDBBUpPT9e9995r7zf3HXfccUpKSrI/6w9/+EOT73vwwQc1ZMgQ+z2FhYW64YYbVFFRcdhQeVFRkdLS0nTRRRdp9+7dbf7PEfGBoAkAQBt76qmn1LFjRy1ZssSGzp/85Ce69NJL9Z3vfEfLli3T2WefrSuvvFIHDhxQOBxW9+7d9cILL9jzuO+88079x3/8h/785z9/688wYXDx4sV64IEHdPfdd+uNN95o8hgTPk0QXLFiha699lrNmTNHt9xyi/7lX/5FK1eu1D/90z/Z8PvOO+80fI/f79evf/1rrVq1yv6Mt99+2wbaeubnmWB84403avny5Tr99NN1zz33ROGfIuIBR1ACANCGTLfRdCnfe+89e9t8boa+L774Yj399NP2vu3bt6tLly768MMPNWbMmMOew4Q485i//OUvDR3Nffv2ae7cuUf8GcZJJ52kM844Q/fdd19DR9N0VR966KGGx4wdO1aDBg3S7373u4b7LrvsMtttfeWVV474+5gafvzjH2vXrl329hVXXKGysrImj//+97+v1157zdYINEZHEwCANjZ06NCGzwOBgDp06GCHo+uZ4XSjtLTUfnz00Uc1YsQIderUSRkZGTYIFhcXN/tnGCa41j9fvZEjRza5vWbNGhs2GzO3zf313nzzTZ155pnq1q2bHeY3nVczNG66r/XPMXr06CbPcfLJJ3/LPxF4FUETAIA2duiiG9NdbHyfuW2YYfPnnntOt99+ux2Onj9/vh2ONsPZtbW1Lf4Z5vkaM0PrLbF582adf/75NsS++OKLWrp0qQ3BxrfVAxwJq84BAHDQ+++/b+dumkU39TZs2BCVnzVgwAD786ZOndrk5w8cONB+boKlCau//OUv7VxN49C5ouY5zDzNxhYtWhSVehH7CJoAADiob9++du7m66+/bleem1XgH330kf28rf3rv/6rnZM5fPhwTZgwQS+//LL+7//+zw6XG2Y1vNkG6Te/+Y0mTZpkQ+hvf/vbJs9hVrub4fZf/OIXmjx5sq3bzM8EjoShcwAAHGRWfpuFQpdffrmd+2jmQzbubrYls0WS2TrJhESzKOjxxx/Xk08+aRcXGcOGDbPbG91///0aPHiw/vjHP2rmzJlNnsMsXjLbNZnnMY83w/0/+9nPolIvYh+rzgEAABAVdDQBAAAQFQRNAAAARAVBEwAAAFFB0AQAAEBUEDQBAAAQFQRNAAAARAVBEwAAAFFB0AQAAEBUEDQBAAAQFQRNAAAARAVBEwAAAFFB0AQAAICi4f8BMAURt9FZ8mYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "mainroad_count = cleaned_house_price['mainroad'].value_counts()\n",
    "mainroad_label = mainroad_count.index\n",
    "axes[0].pie(mainroad_count, labels=mainroad_label)\n",
    "sns.barplot(cleaned_house_price, x='mainroad', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中房子大多数位于主路。\n",
    "\n",
    "从平均房价与楼层数之间的柱状图来看，在主路的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否有客人房与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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e+219vLcuXM1YsQIpaenq2fPnrrvvvsUDocbW+juvfdede3a1c6Q7ty5s2677bY4fGMAgGSVcEHTMGM1c4I0ayaCL8KnqS43SRa67n2mlNO+2Xe/8sorFYlE9NprrzWeKysr05///GfdeOON+vDDD3Xdddfp9ttv1+rVq/XUU0/ZbRMffPBBe99XX31Vjz76qD2/bt06zZkzR0OGDInLtwYASE4JGTRT/KYLPeh0GWglK7KSoFWzoORw0DwJGRkZuuaaa/TMM880njOzok0LpZmwYlov//3f/11Tp061rZnnnXeefv7zn9tgaWzdulWdOnXSpEmT7GPGjBmjm2++udW/NQBA8krIoGl0yjVd6Ak11ylprQp3VX1OZyWs1HRp+Hcl38n/dzTB8O2339b27dvtddNief3119vtWZcvX677779f2dnZjYe5/86dO3Xw4EHbImqW5jEh1Jw360M2dKsDANAaEjZoNuwY1IHtKRPC6uxxSlhDLpYy8lr00OHDh2vYsGF2vOayZcu0atUqGzSN6upq26r52WefNR4rVqyw3eRmzKbZe3vt2rX6r//6L9s6esstt2jChAmqr69v5W8QAJCsErrJz8xCn9A7qDdWHlItDTWetjzcXYOyOyqlercSStcRUvGp7e1+00036bHHHrOtmqYb3ARIw0wCMkGyd+/eJ3ysCZiTJ0+2h1mQvH///jaMmscCAHCqEjpoGplpfp3ZK13vra1l/2yPW5szVoOq/z7xxfOy20sDT31hdjNO86677tKsWbNsy2aDu+++WxdffLEdf3nFFVfI7/fb7vSVK1fqgQcesN3sZjLR2LFjlZmZacd3muDZrVu3U64JAAAjKfqVO+cFNJRdgzxvWX0vRbLaKSEE0qQRl0mBU/+9zMvL0+WXX27HYJqljRqcf/75euONN+wYztGjR2vcuHF2lnlDkMzPz7fhdPz48Ro6dKjeffddvf7663bJJAAAWkPCt2g2GNo5VWVVUe2sjDhdClrK59O63LHqX/NneZvv8OSfnA6t9oym23zKlCl2PcwjmbBpjuMxofTIYAoAQGtLihZNw8zCPatXUJlprK/pZR/X91Eko0CeNuCbUse+rfJUBw4csLPF582bZ8dYAgDgJkkTNI30VJ++2TddqQGnK0FLRX1+bcz38LqaJcOlnme02tOZWedmlvlDDz2kfv36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",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "guestroom_count = cleaned_house_price['guestroom'].value_counts()\n",
    "guestroom_label = guestroom_count.index\n",
    "axes[0].pie(guestroom_count, labels=guestroom_label)\n",
    "sns.barplot(cleaned_house_price, x='guestroom', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中房子大部分没有客人房。\n",
    "\n",
    "从平均房价与楼层数之间的柱状图来看，有客人房的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否有地下室与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApoAAAFUCAYAAACEBpymAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMqtJREFUeJzt3Ql01OW9//HPTCYbWQl7IOyL7MpuEcSKglUuHKv1KlfR1va24laP115O/67Vom0v0qrX26u94tIrHq9XcEErLohXBRQ3UEB2whrWbCSTZGb+53liUnZCyOT5zcz7dc7vJL/fLPlGJ8xnntUXiUQiAgAAAJqYv6mfEAAAADAImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgKgiYANLPFixdr0qRJys/Pl8/n07x58075OczuwX/4wx/Uu3dvpaamqmPHjnrggQeiUi8ANFag0Y8EADRKeXm5Bg8erB//+Me69NJLG/Uct9xyi9566y0bNgcOHKh9+/bZAwC8xBcxH4sBAE6YFs2XX35ZU6ZMqb8WDAb161//Ws8//7wOHDigAQMG6KGHHtK4cePs7atWrdKgQYO0cuVK9enTx2H1AHBidJ0DgMfceOON+vjjjzV37lx99dVXuvzyyzVx4kStXbvW3v7qq6+qe/fueu2119StWzd17dpV119/PS2aADyHoAkAHrJlyxY99dRTevHFFzVmzBj16NFDt99+u8455xx73diwYYM2b95s7/PMM89ozpw5Wr58uS677DLX5QPAYRijCQAesmLFCoVCITvJ51CmO71Vq1b2+3A4bM9NyKy731/+8hcNHTpUa9asoTsdgGcQNAHAQ8rKypSUlGRbKM3XQ2VmZtqvHTp0UCAQOCyM9u3bt75FlKAJwCsImgDgIWeddZZt0SwqKrJd58cyevRo1dTUaP369bZr3fj222/t1y5dujRrvQBwIsw6BwAHrZbr1q2rD5azZs3Seeedp7y8PHXu3Fn/9E//pA8//FD/9m//Zm/fvXu33nnnHTvT/OKLL7Zd58OHD7ctnLNnz7bn06dPV3Z2tl3yCAC8gqAJAM1s0aJFNlgeadq0aXZiT3V1te6//347BnPbtm1q3bq1Ro0apXvvvdeumWls375dN910kw2WGRkZuuiii2wwNWEVALyCoAkAAICoYHkjAAAARAVBEwAAAFHBrHMAaAZmwo4ZV5mVlWW3nQSAWGZGXpaWlio/P19+//HbLQmaANAMTMgsKChwXQYANKnCwkJ16tTpuLcTNAGgGZiWzLp/lM0yRAAQy0pKSuyH57p/246HoAkAzaCuu9yETIImgHhxsqFATAYCAABAVBA0AQAAEBUETQAAAEQFQRMAAABRQdAEAABAVBA0AQAAEBUETQAAAEQFQRMAAABRwYLtAAAgIZn9usvLy+vPMzIyTroAOU4NQRMAACQkEzInT55cfz5//nxlZmY6rSne0HUOAACAqCBoAgAAICoImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgK9jpvgHHjxmnQoEFKS0vTk08+qZSUFP385z/XPffcY2/fsmWLbrrpJr3zzjvy+/2aOHGiHnnkEbVr18516QAAnJL/WbZbiSJYUX7Y+fzle5SaXqFEcdmINlH/GbRoNtDTTz+tjIwMLV26VL/73e903333aeHChQqHw5o8ebL27dun999/317bsGGDrrjiCtclAwAAOEWLZgOZFs27777bft+rVy89+uijtgXTWLFihTZu3KiCggJ7/swzz6h///765JNPNHz4cHldVU1ElTURVVRHVGkOc14dUXUoolBYCkfqjojC5vy7TyhJfsnv9yngl5KTfEr2SykBn9KTfWqR4lOLZJ/Skn3y+Xyuf0UAAOAAQfMUguahOnTooKKiIq1atcoGzLqQafTr10+5ubn2Nq8EzWBNRCWVYZVUhFVc+d33lWGVBmvDZLSYjGmDZ7JPWWk+5ab764/MVEIoAADxjKDZQMnJyYedm4Bkus29qCYU0d7ysHaXh7SnLKzdZWHbWulCJCIdrIrYY48dChOqv820hOak+9Uy3a82mX61zUqy5wAAID4QNE9T3759VVhYaI+6Vs1vvvlGBw4csC2bzaEqFNGO4pB2lIRsqDxQEbYBz+tqwrKB2Bzr9tReSwvIBs62mUlqm+VXXoZfflo9AQCISQTN0zR+/HgNHDhQU6dO1ezZs1VTU6MbbrhB5557roYNGxa1n7v/YFjbDtRoW3FtuDRjKONBZY20ZX/IHkZKktQpN0mdWgbUMSfJjgUFAACxgX7K02S60OfP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JB295WKiMrPCv/rqKz366KP68ssv7ZqaJjDeeOONysvLa/Dz/OUvf4lqnQAQjzwXNImZ3jUysFpZOwiZnudjsfYjmQXaf/vb37ouAwASjueCZpLdOo+46TXtkw6od9HbrstAQxA0bQvmgAED5Pf77fcnYrrAAQAJEjSTPTc9CQGF9P2yBfKFqlyXgobw8Ud05plnaufOnXYHIPO9mXl+rNn45vrpzjwHAMRS0EyiNcZrJvg+UqBsp+sy0FCBNCU6sxtQmzZt6r8HALjhuaAZMBNm4RmDApuVt+MT12XgVKSkK9F16dLFfq2urta9996rO++8U926dXNdFgAkHM/1sQXsGE14QUt/uQbveUP8H4kxybRo1jF7mb/00kuuywCAhOW5oJlMi6Yn+CIRXVj5pnzVB12XglOVTIvmoaZMmaJ58+a5LgMAEpLnus5TGKPpCecHlit1z2bXZaAxCJqH6dWrl+677z59+OGHdo/yjIyMw26/+eabndUGAPHOc0EzI4Wg6VqvwE512Pl/rstAYwRSJL/nOiqcMgut5+bmavny5fY4ctY5QRMAEihotiBoOpXhq9TI/a/LFwm7LgWNkdzCdQWec+is87oljkzABABEn+eaPjJSPFdSQplY8678lcWuy0BjpWe7rsCzrZpmAfe0tDR7mO+ffPJJ12UBQNyjRRP1RgdWKmP3atdl4HS0aOm6As+56667NGvWLN100006++yz7bWPP/5Yv/zlL7VlyxY7fhMAkCBBMyXgs7sDVdNz26wKkvaq+653XZeB05WR57oCz3n88cf1xBNP6Morr6y/9g//8A9260kTPgmaABA9nuynplWzeaX4qjW2dIF84RrXpeB00aJ5FLNo+7Bhw466bmag19TwmgeAhAuaOemeLCtuTYx8oKTy3a7LQFOgRfMoV199tW3VPNJ//ud/aurUqU5qAoBE4bmucyM33a8t+0Ouy0gIQwPrlLvjC9dloKnQonncyUBvvfWWRo0aZc+XLl1qx2dec801uu222+rvZ8ZyAgDiPGi2bEGLZnNo4y9Vv91vuS4DTblQO9tPHmXlypUaMmSI/X79+vX2a+vWre1hbqvDkkcAkEAtmoguv8I6v+IN+WoqXZeCppLdznUFnvTee++5LgEAEpYnE112mk9JnqwsflzgX6qUkq2uy0BTys13XQEAAIfxZJwzXVi5aZ4sLS70DWxV211LXJeBppZD0AQAeItn01zLDM+WFtNyfAc1dO8C+VS7FR/iSG5H1xUAAHAYz6a5dpmeLS12RSK6sHqh/FVlritBU0vNZPtJAIDneDbNtc1Ocl1C3BkX+ELp+2tn3SLOMD4TAOBBng2aWal+dghqQl2Tdqtg12LXZSBaGJ8JAPAgzwZNo12Wp8uLGWmq0uji1+WLsAh+3GrV1XUFAAAcxdNJrl0W3edN4aLIe0qq2Oe6DESLWaS9JROBAADeQ9CMcyMDa5S152vXZSCaWneTfJ7+UwYAJChPvzvlpPuVyTjNRmvvP6DeRQtdl4Foa9PTdQUAAMRe0DQKWtKq2RgBhfT98gXyhapcl4Joa9PDdQUAAMRq0PTkduyeN8H3oQJlO12XgWjLaiulZbmuAgCA2AyabbP8SqFR85QMCmxSq6JPXZeB5tCWbnMAgHd5Pmj6fT51yqVVs6Fa+ss1eM+brstAc+nQz3UFAADEbtA0OjNOs0F8ZovJyjflqz7ouhQ0h4xWUk4H11UAABDbQTM/N0nJZM2TOj/wqVKLN7suA82l40DXFQAAEPtBM+D3qWse3ecn0iuwQx12fei6DDSnjgNcVwAAQOwHTaNnG4Lm8WT4KjVy/wL5ImHXpaC5tOwktWjpuoqEMnPmTA0fPlxZWVlq27atpkyZojVr1rguCwA8LWaCZpvMJOWks3j7sUyseUf+ymLXZaA50W3e7N5//31Nnz5dS5Ys0cKFC1VdXa0LL7xQ5eXlrksDAM+KqWbCnq2TtbyQBcgPdU5ghTJ206qSUPxJzDZ34M03D1/NYc6cObZlc/ny5Ro7dqyzugDAy2IqaHZvHdBnW6sUibiuxBsKkvaq2673XJeB5pY/QEpp4bqKhFdcXNuLkJeXd8zbg8GgPeqUlJQ0W20A4BUx03VupCf7VJDL9HMjxVetsaWvyxeucV0Kmlu3Ea4rSHjhcFi33nqrRo8erQEDBhx3TGdOTk79UVBQ0Ox1AoBrMRU0jb7tk12X4AkTIx8oqXyP6zLQ3PK6SNntXVeR8MxYzZUrV2ru3LnHvc+MGTNsq2fdUVhY2Kw1AoAXxFTXudEuK0mtMvzaW564M6yHBtYpd8cXrsuAC91Guq4g4d1444167bXXtHjxYnXq1Om490tNTbUHACSymGvRNPolcKtmG3+p+u1+y3UZcMEsZ9Sut+sqElYkErEh8+WXX9a7776rbt26uS4JADwvJoNml7wkZaYm3lJHfoU1vmKBfDWVrkuBC12HS77Ee917qbv8ueee03//93/btTR37txpj4qKCtelAYBnxWTQ9Pt86t8h8Vo1L/QvUXLJNtdlwAUzy7zgLNdVJLTHH3/cjrUcN26cOnToUH+88MILrksDAM+KuTGadXq2DuirbdWqqE6MtY76BQrVZsdS12XAlR6jpUCK6yqU6F3nAIAEaNE0kvw+De6YGK2aOb6DGrL3DfnEG11CSsuWugxzXQUAAIkTNOv2P89Oi/Mxa5GIJlS/JX9VmetK4EqvMVJSzHY+AAASWEwHTTNW86xO8d2deF7gC6Xt3+C6DLicad7pTNdVAACQeEHT6JIXUOuMmP81jqlbUpE67Vrsugy41PtcyR+fr28AQPyLi3ewIQXx16qZrip9r/h1+SIh16XAlay2tfuaAwAQo+IiaLbPTlKnONsDfWL4PSVV7HddBlwacBHrZgIAYlpcBE1jRJcUBeLktxkVWK2svV+7LgMumZbMvM6uqwAA4LTESTSTMlP9GhQHyx11SNqvXkULXZcBl8x6mX3Hu64CAIDTFjdBs24P9JbpsfsrBRTSeWUL5AtVuy4FLvX5vpSW5boKAABOW+ymsuMsdzSqW4pidVTbRN+HCpTtcl0GXMrtyOLsAIC4EVdB02iTmaRebWNvcevBgU3KK/rUdRlwyeeXBl7MBCAAQNyIu6BZt9xRZmrsvFm39Jdr0J43XZcB13qPk7Lbua4CAIAmE5dBMyXJpzHdU2OiYcgXiejCyjfkqz7ouhS4lNdF6vE911UAANCk4jJoGm2ykjQo3/uz0M8PfKLU4i2uy4BLyenSmVPoMgcAxJ24DZrGwPxktc307q/YO7BdHXZ96LoMuDbwB1J6tusqAABoct5NYU00C/2cHqlK9uCmQRm+So3Yv8B2nSOBdTpT6tDPdRUAAERFXAfNuoXcz+6aKq+5qOZt+StLXJcBlzJaSf0nuK4CAICoifugaXRtFVD/Dt4ZrzkmsEIt9n3rugy4FEiThv2odhcgAADiVEIETWNIp2R1zHHfh16QtEddd73nugy4ZCb9DLlUymztuhIAAKIqYYKmz+fTmB6pyklzN7M31VetsaUL5AvXOKsBHnDGeKlND9dVAAAQdQkTNI2UgE/n9UpTiqOGzQmRxUoq3+Pmh8MbOg2Wuo9yXQUAAM0ioYKmkZ3uty2bzb1k4bDAWuXu/rJ5fyi8pWWn2i0mAQBIEAkXNI2OuQF9r1vzTcJo6y9R391vNdvPg0dnmA/9keR3P04YAIDmkpBB0+jROlnDO0c/bPoV1vkH35CvJhj1nwWPSs+RRv6TlJrhuhIAAJpVwgZNo2/75KhvU3mhf4mSS7dF9WfAw1Iza0MmO/8AABJQQgdN48xOKTqjXSAqz90/UKg2u5ZE5bkRI3uYj5wqZeS5rgQAACcSPmgapgu9R+umDZs5voMasneB3C2mBKfMQuwjrpKy2rquBAAAZwia362xaSYH9W7bRGEzEtGEqrfkqypvmudDbAmkSsOvlHLzXVcCAIBT0ekzjtGwOaprqpL9Pn29s/q0nuu8wOdK27OhyWpDDEnJkEZcKeV0cF0JAADOETSPMLRzipKTpC+2NS5sdg8UqdPOxU1eF2JldrkZk9nKdSUAAHgCQfMYBnU0YdOnT7ZUndLj0lWl7x14Xb5IOGq1waPMvuUmZKYxuxwAgDoEzRMsfZQa8OnjjUGFIg17zMTwu/JX7I92afCa3I61YzJT0l1XAgCApxA0T6B764Cy0nx6b21QldUnTptnB1Ypa8c3zVYbPKJdH+nMKbWzzAEAwGGYdX4SbTKTdHG/NLVscfz/VPlJ+9Wz6O1mrQse0HucNPRyQiYAAMdB0GyAjFS/JvZNU+eWR+9THVCNxpUtkC90ejPVEWPLFw27Quo1xixX4LoaNJPFixdr0qRJys/Pt6tUzJs3z3VJAOB5BM0GMpODzu2ZaresPDRaTPR9qEDZLoeVoVmZGeWjfyK16+26EjSz8vJyDR48WI899pjrUgAgZjBG8xSYVgyzZWXbrCT934ag+kQ2KG/HctdlobmYcDl4ipSc6roSOHDRRRfZAwDQcATNRsjPSdKk/mlKWbHGdSloDknJUr8Lpc5DXFeCGBIMBu1Rp6SkxGk9AOACXeeNlJ7iV9KQS6W+4yX/0WM3EUdLF435GSETp2zmzJnKycmpPwoKClyXBADNjqB5OsxEkO5nS9+7Tspq67oaNCWfX+p9rvS9a6WMPNfVIAbNmDFDxcXF9UdhYaHrkgCg2dF13hTMvtbn/FTa+LH07WIpXOO6IpzuhB+zNmZuvutKEMNSU1PtAQCJjKDZVPx+qcdoqUM/acUCac8G1xWhMWMxe55T20rNcAgAAE4bQbOptWhZu+f1thXSNwulqnLXFaEh2veV+l0gpee4rgQeVVZWpnXr1tWfb9y4UV988YXy8vLUuXNnp7UBgFcRNKOl40CpTU/p2/elLculSNh1RTheN/mAiVLr7q4rgcd9+umnOu+88+rPb7vtNvt12rRpmjNnjsPKAMC7CJrRlJJeG2K6jZC+XSRt/9p1RaiTnFY71KHbSLrJ0SDjxo1TJBJxXQYAxBSCZnMws5bPurR27N/qdxm/6VJSSm3wN/8vTNgEAABRQ9Bs7tnpZvzmno3SmnelA9tdV5RYE326DKsNmKkZrqsBACAhEDRdaN1Nav0Tae9macPHUtFa1xXFr0BKbcDsNoqACQBAMyNoutSqS+1RtkfasKR2pjprcDbdJJ+uw6VOg6QAaxkCAOACQdMLMltLgy6R+pwnbf5E2vK5FCxzXVUM8kntetUGTGaRAwDgHEHTS0zXbu9xUq+x0u4N0tYvpV3f0sp5MqlZUscBtV3kLXJdVwMAAL5D0PTqPttte9Ye1ZXSjm9qQ+f+ra4r846UFlL7M6T8/lJel9p95wEAgKf4XReAkzBL8HQeIn3vOmncDdIZ478LVgn4v86Mtew4SBp+pXT+L6WBF0utup52yHzmmWfUqlUrBYPBw65PmTJFV199tf1+/vz5GjJkiNLS0tS9e3fde++9qqmpbWk2ayvec889dncYs7d1fn6+br755tOqCQCAeECLZqxNcOlxdu1hWjp3r6+dsV60TqquUNwxATIn/7tZ+t2llp2isrj65ZdfboPhK6+8Yr83ioqK9Prrr+utt97SBx98oGuuuUZ/+tOfNGbMGK1fv14/+9nP7P3uvvtuvfTSS3r44Yc1d+5c9e/fXzt37tSXX37Z5HUCABBrCJqx3NJpuo3NYXYrObBN2lcoHdha28Ueq5OJzOL2rUyw/O5ohkXV09PTddVVV+mpp56qD5rPPfecbaE0u8FccMEF+td//Ve71aBhWjR/85vf6I477rBBc8uWLWrfvr3Gjx+v5ORk+7gRI0ZEvW4AALzOF2FPtfh08MB3oXNb7VezhFJNlTzXQpvTvnYh++wOtd872q3n888/1/Dhw7V582Z17NhRgwYNsqHzzjvvVJs2bVRWVqakpL+3poZCIVVWVqq8vFx79+7V6NGjbRf6xIkT9YMf/ECTJk1SIMDnOPxdSUmJcnJyVFxcrOzs7EY9x/8s293kdcGbLhvRxtnP5nWWOC47jddZQ/9N450wXpnZ1+bIH/D3a5WlUvleqWxv7dfyfbXfV5ZEZ2a76fpOy5bSv6vFHOk5Uos8Kbutp9a3POusszR48GA7XvPCCy/U119/bbvODRMyzZjMSy+99KjHmTGbBQUFWrNmjd5++20tXLhQN9xwg37/+9/r/fffty2cAAAkKoJmIknLqj3MBJojVQelqjIpWF473rOqsvZrqNpMd6ntno+ED/9qgqQJi6YV0ny139d9Ta8Nmf7YmbR0/fXXa/bs2dq2bZvtBjcB0jCTgEyQ7Nmz5wm7300rpjmmT5+uM844QytWrLCPBQAgURE0UcsERHOY7uwEZcZp3n777XriiSdsy2adu+66S5dccokde3nZZZfJ7/fbyT4rV67U/fffrzlz5tiu9JEjR6pFixZ2fKcJnl26dHH6+wAA4FrsNDcBUWbGmvzwhz9UZmamXdqozoQJE/Taa6/ZGehmHOeoUaPsLPO6IJmbm2vDqRmnacZ2mi70V1991S6ZBABAIqNFEziE6TafOnWqXQ/zUCZsmuNYTCg9NJgCAIBaBE1A0v79+7Vo0SJ7/Pu//7vrcgAAiAsETeC7WecmbD700EPq06eP63IAAIgLBE1A0qZNm1yXAABA3GEyEAAAAKKCoAkAAICoIGgCAAAgKgiaAAAAiAqCJgAAAKKCoAkAAICoIGgCAAAgKgiaAAAAiAqCJgAAAKKCoAkAAICoIGgCAAAgKgiaAAAAiAqCJgAAAKKCoAkAAICoIGgCAAAgKgiaAHAKHnvsMXXt2lVpaWkaOXKkli1b5rokAPAsgiYANNALL7yg2267TXfffbc+++wzDR48WBMmTFBRUZHr0gDAkwiaANBAs2bN0k9/+lNdd9116tevn/7jP/5DLVq00H/913+5Lg0APImgCQANUFVVpeXLl2v8+PH11/x+vz3/+OOPndYGAF4VcF0AAMSCPXv2KBQKqV27doddN+erV68+6v7BYNAedYqLi+3XkpKSRtdwsKy00Y9FbCkpSXX2s3mdJY6S03id1f1bFolETng/giYARMHMmTN17733HnW9oKDAST0AEA2lpaXKyck57u0ETQBogNatWyspKUm7du067Lo5b9++/VH3nzFjhp04VCccDmvfvn1q1aqVfD5fs9Qc60yLiQnmhYWFys7Odl0O4hSvs8YxLZkmZObn55/wfgRNAGiAlJQUDR06VO+8846mTJlSHx7N+Y033njU/VNTU+1xqNzc3GarN56YN38CAKKN19mpO1FLZh2CJgA0kGmhnDZtmoYNG6YRI0Zo9uzZKi8vt7PQAQBHI2gCQANdccUV2r17t+666y7t3LlTZ555pt58882jJggBAGoRNAHgFJhu8mN1laPpmaEHZnH8I4cgAE2J11l0+SInm5cOAAAANAILtgMAACAqCJoAAACICoImAAAAooKgCQAAgKggaAIAACAqCJoAAKfGjRunm2++WXfccYfy8vLslp733HNP/e1btmzR5MmTlZmZaXdu+dGPfnTUVqDAkZ555hm75WswGDzsutnZ6+qrr7bfz58/X0OGDFFaWpq6d++ue++9VzU1NfY2syiPeR127tzZLn1ktlo0r1OcGoImAMC5p59+WhkZGVq6dKl+97vf6b777tPChQvtNp8mZJp94t9//317bcOGDXbxfOBELr/8coVCIb3yyiv114qKivT666/rxz/+sT744ANdc801uuWWW/TNN9/oz3/+s+bMmaMHHnjA3vell17Sww8/bK+vXbtW8+bN08CBAx3+RrGJdTQBAM5bNE0gMG/8dcwWn9///vd1/vnn66KLLtLGjRtVUFBgbzOhoH///lq2bJmGDx/usHJ43Q033KBNmzZpwYIF9nzWrFl67LHHtG7dOl1wwQX29TVjxoz6+z/33HO2ZX379u32viZkrly5UsnJyQ5/i9hGiyYAwLlBgwYddt6hQwfb+rRq1SobMOtCptGvXz/l5uba24AT+elPf6q33npL27Zts+emxfLaa6+Vz+fTl19+aVvOzZCMusPcf8eOHTp48KBtEa2oqLBd6ub6yy+/XN+tjoZjC0oAgHNHthiZIGC6zYHTcdZZZ2nw4MF2vOaFF16or7/+2nadG2VlZXZM5qWXXnrU48yYTfPhZs2aNXr77bftkA3TOvr73//eDuGghbPhCJoAAM/q27evCgsL7XFo1/mBAwdsyyZwMtdff71mz55tWzXHjx9f/zoyk4BMkOzZs+dxH5uenq5JkybZY/r06TrjjDO0YsUK+1g0DEETAOBZJhiYCRhTp061YcF0XZqWpXPPPVfDhg1zXR5iwFVXXaXbb79dTzzxhG3ZrHPXXXfpkksusbPKL7vsMvn9ftudbsZk3n///bab3YwdHjlypFq0aGHHb5rg2aVLF6e/T6xhjCYAwLNMF7pZgqZly5YaO3asDZ5mzNwLL7zgujTEiJycHP3whz+0YzDN0kZ1JkyYoNdee82O4TSTykaNGmVnmdcFSTMO2ITT0aNH2zHEpgv91VdftUsmoeGYdQ4AAOKamV1uVir405/+5LqUhEPQBAAAcWn//v1atGiR7Ro3Y3v79OnjuqSEwxhNAAAQt7POTdh86KGHCJmO0KIJAACAqGAyEAAAAKKCoAkAAICoIGgCAAAgKgiaAAAAiAqCJgAAAKKCoAkAQBMZN26cbr31VtdlAJ5B0AQAAKeta9eudj964FAETQAAAEQFQRMAgCZUU1OjG2+8UTk5OWrdurXuvPNO1e2N8uyzz2rYsGHKyspS+/btddVVV6moqKj+sWYXm6lTp6pNmzZKT09Xr1699NRTT9XfXlhYqB/96EfKzc1VXl6eJk+erE2bNtXffu2112rKlCn67W9/q3bt2tn73Xfffbamf/mXf7GP6dSp02HPeSrP+4c//EEdOnRQq1atNH36dFVXV9cPGdi8ebN++ctfyufz2QMwCJoAADShp59+WoFAQMuWLdMf//hHzZo1S08++aS9zQSz3/zmN/ryyy81b948G+ZMiKtjQqnZk/uNN97QqlWr9Pjjj9uwWvfYCRMm2JD6wQcf6MMPP1RmZqYmTpyoqqqq+ud49913tX37di1evNj+7LvvvluXXHKJWrZsqaVLl+rnP/+5/vmf/1lbt249ped97733tH79evvV/I5z5syxh/G///u/NsCaULtjxw57AJbZghIAAJy+c889N9K3b99IOByuv/arX/3KXjuWTz75xDR1RkpLS+35pEmTItddd90x7/vss89G+vTpc9hzB4PBSHp6euRvf/ubPZ82bVqkS5cukVAoVH8f85gxY8bUn9fU1EQyMjIizz///Ck/r3lsncsvvzxyxRVX1J+b2x9++OFT+u+F+EeLJgAATWjUqFGHdR2fffbZWrt2rUKhkJYvX65Jkyapc+fOtgXx3HPPtffZsmWL/fqLX/xCc+fO1Zlnnqk77rhDH330Uf3zmFbQdevW2ceZFkdzmG7uyspK29JYp3///vL7//72brrQBw4cWH+elJRku77ruuxP5XnNY+uYLvRDu/2BYwkc8yoAAGhSJriZLmpz/PWvf7XjME3ANOd1XdQXXXSRHeu4YMECLVy4UOeff74dC2nGRpaVlWno0KH2sUcyz1UnOTn5sNtM6D3WtXA4bL8/neetew7geAiaAAA0ITMO8lBLliyxk3pWr16tvXv36sEHH1RBQYG97dNPPz1muJs2bZo9xowZYyfxmKA5ZMgQvfDCC2rbtq2ys7ObrN6met6UlBTbagsciq5zAACakGmlvO2227RmzRo9//zzeuSRR3TLLbfY7nITxsz5hg0b9Morr9iJQYe66667NH/+fNuV/fXXX+u1115T37597W1mNrqZGGRmhJtJOxs3btSiRYt0880310/saYymel6zjqaZgLRt2zbt2bOn0fUgvhA0AQBoQtdcc40qKio0YsQI2+1tQubPfvYz21JpZmm/+OKL6tevn23ZNC2VhzJBdMaMGRo0aJDGjh1rx0SaMZtGixYtbJAzgfXSSy+1AfQnP/mJ7ZI/nZbIpnpeM+PczKLv0aPHYV3uSGw+MyPIdREAAACIP7RoAgAAICoImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgKgiYAAACigqAJAACAqCBoAgAAICoImgAAAIgKgiYAAACigqAJAAAARcP/B/IHJqzNFRvtAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "basement_count = cleaned_house_price['basement'].value_counts()\n",
    "basement_label = basement_count.index\n",
    "axes[0].pie(basement_count, labels=basement_label)\n",
    "sns.barplot(cleaned_house_price, x='basement', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中更多的房子没有地下室。\n",
    "\n",
    "从平均房价与地下室之间的柱状图来看，有地下室的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否有热水器与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "hotwaterheating_count = cleaned_house_price['hotwaterheating'].value_counts()\n",
    "hotwaterheating_label = hotwaterheating_count.index\n",
    "axes[0].pie(hotwaterheating_count, labels=hotwaterheating_label)\n",
    "sns.barplot(cleaned_house_price, x='hotwaterheating', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中房子绝大部分没有热水器。\n",
    "\n",
    "从平均房价与热水器之间的柱状图来看，有热水器的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否有空调与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApoAAAFUCAYAAACEBpymAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAANURJREFUeJzt3Ql41PWdx/HPTI7JRRJuCIRLkPuUw4oiKh6oLF7oKlWsq93d4sm6ttRWxdWitlVqtVbRFV1rcdUFPFrrCVqroIgIityYcAbIfU2OmX1+vzQpIRy5Jv//zLxfz/N/yBxJvsMTmE++v8sTDAaDAgAAAFqZt7W/IAAAAGAQNAEAABASBE0AAACEBEETAAAAIUHQBAAAQEgQNAEAABASBE0AAACEBEETAAAAIUHQBAAAQEgQNAEAABASBE0AaGMffvihpk2bpoyMDHk8Hi1durTJX8OcHvyrX/1KJ554onw+n3r06KH7778/JPUCQHPFNvszAQDNUlJSopEjR+q6667TJZdc0qyvccstt+jtt9+2YXP48OHKzc21FwC4iSdofi0GADjCdDSXLFmiiy66qO4+v9+vO++8U3/84x+Vn5+vYcOG6cEHH9TkyZPt4xs2bNCIESO0fv16DRw40MHqAeDYGDoHAJe58cYb9cknn2jx4sX66quvNGPGDJ133nnavHmzffz1119Xv3799MYbb6hv377q06ePrr/+ejqaAFyHoAkALpKVlaVnn31WL7/8sk477TSdcMIJuv3223Xqqafa+41t27bpu+++s895/vnntWjRIq1evVqXXXaZ0+UDQD3M0QQAF1m3bp2qq6vtIp9DmeH0jh072o8DgYC9bUJm7fOeeeYZnXTSSdq4cSPD6QBcg6AJAC5SXFysmJgY26E0fx4qJSXF/tm9e3fFxsbWC6ODBw+u64gSNAG4BUETAFxk9OjRtqOZk5Njh86PZOLEiaqqqtLWrVvt0LqxadMm+2fv3r3btF4AOBZWnQOAA13LLVu21AXLhx9+WGeccYY6dOigXr166fvf/74+/vhj/frXv7aP79+/X++9955daX7BBRfYofNx48bZDueCBQvs7dmzZys1NdVueQQAbkHQBIA2tnz5chssDzdr1iy7sKeyslL33XefnYO5a9cuderUSSeffLLmzZtn98w0du/erZtuuskGy+TkZE2dOtUG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WbKkblgdjccRlAAAxx3eMTJBwAybAy0xevRojRw50s7XPOecc/T111/boXOjuLjYzsm85JJLGnyembNpfrnZuHGj3n33XTtlw3RHf/nLX9opHHQ4G4+gCQBwrcGDBys7O9tehw6d5+fn284mcDzXX3+9FixYYLuaU6ZMqfs5MouATJDs37//UT83MTFR06ZNs9fs2bM1aNAgrVu3zn4uGoegCQBwLRMMzAKMmTNn2rBghi5NZ+n000/X2LFjnS4PYeCqq67S7bffroULF9rOZq277rpLF154oV1Vftlll8nr9drhdDMn87777rPD7Gbu8IQJE5SUlGTnb5rg2bt3b0dfT7hhjiYAwLXMELrZgqZ9+/aaNGmSDZ5mztxLL73kdGkIE2lpabr00kvtHEyztVGtc889V2+88Yadw2kWlZ188sl2lXltkDTzgE04nThxop1DbIbQX3/9dbtlEhqPVecAACCimdXlZqeCRx991OlSog5BEwAARKS8vDwtX77cDo2bub0DBw50uqSowxxNAAAQsavOTdh88MEHCZkOoaMJAACAkGAxEAAAAEKCoAkAAICQIGgCAAAgJAiaAAAACAmCJgAAAEKCoAkAwHHs2LHDnlL05Zdfyo369Oljj+isZWpdunTpMT/n2muvrXdSTmu45557NGrUqFb9mghvbG8EAMBxmDOv9+/fr06dOik2NtaVQfPWW2+1l7F37157bKfP57MhuW/fvlqzZk29EFhQUCATAcxRi62luLhYfr+fYxpRx33/WgAAcJmYmBh169btqI+bwGbCqFtC6LFqPfQM8NZmzhM3F1CLoXMAACS99dZbOvXUU22Hz3TkLrzwQm3duvWIQ+fmWENz+89//rNOOukk2zn861//qkAgoIceekj9+/e39/Xq1Uv3339/3fdYt26dzjzzTCUmJtrv8cMf/tB2AQ8fzv7Vr36l7t272+fMnj1blZWVdc/JycnRtGnT7Ncwnco//OEPDV7LoUPn5jm1p+SY+ydPnlzve9Uyncibb75ZXbp0UUJCgv27+Oyzz+oer33N7733nsaOHaukpCSdcsop2rhx41GHzhvzevbs2aMLLrig7vW8+OKLDaYCIHwRNAEAkFRSUqI5c+bo888/t2HK6/Xq4osvtuHxaH7yk5/ogQce0IYNGzRixAjNnTvX3v75z39uz9Y2oalr1651X//cc8+1Q9omwL388st69913deONN9b7mh988IENuObP5557TosWLbLXoeEtOzvbPv7KK6/od7/7nQ2fR7Nq1Sr7p/leJtT93//93xGfd8cdd+jVV1+13/OLL76wYdnUm5ubW+95d955p37961/bvyfTwb3uuuuO+fd6vNdzzTXXaPfu3TbImu//1FNPHfP1IMyYOZoAAKC+/fv3mzUMwXXr1gW3b99uP16zZo197IMPPrC3ly5dWvf8wsLCoM/nCy5cuPCIX++pp54Ktm/fPlhcXFx335tvvhn0er3BvXv32tuzZs0K9u7dO1hVVVX3nBkzZgSvuOIK+/HGjRvt9121alXd4xs2bLD3PfLII3X3mdtLliyxHx9eey3zvaZPn24/NjXFxcUF//CHP9Q9XlFREczIyAg+9NBD9V7zu+++W69+c19ZWZm9fffddwdHjhxZ73sc6/XU1v7ZZ5/VPb558+YGrwfhi44mAACSNm/erCuvvFL9+vVTamqqHb41srKyjvo5Zgi5lulqmuHns84664jPNY+PHDlSycnJdfdNnDjRdkwPHX4eOnSonRNayww513b4zNcwXUQzXF9r0KBBLV7QYzqOZjjb1FMrLi5O48ePt9/zUKZze2htxrE6kMd6PeZ1m9czZsyYusdNJ9V0fREZ3DFrGQAAh5l5j71799bChQuVkZFhA+CwYcNUUVFx1M85NDSaOYatwQS8Q5l5kccavm9rh9ZnajOOVZ/bXw9Ci44mACDqHTx40HbXfvazn9mO5ODBg5WXl9ekrzFgwAAbNs38ziMxX3Pt2rV2rmatjz/+2M4FHThwYKO+h+leVlVVafXq1XX3mbrz8/OP+jnx8fH2T7Mq/mhOOOEE+zxTTy3T4TRzSYcMGaJQMa/bvB6z9VKtLVu2NPnvHu5F0AQARD0zVGtWRJuFKCbovP/++3ZhUFOYldo//vGP7aKa559/3g5Hf/rpp3rmmWfs4zNnzrTPmTVrltavX28Xx9x00026+uqr6xYMNSaYnXfeefrXf/1XrVy50gbO66+//pjdVLOK3DxuVtXv27fP7p95pM7sv//7v+s///M/7fPMQqYbbrhBpaWl+pd/+ReFignOU6ZMsavvzaIlEzjNx6be2m4pwhtBEwAQ9UxXcfHixTa4meHy2267Tb/85S+b/HXMavP/+I//0F133WU7mFdccUXdfESzHdBf/vIXu4p73Lhxuuyyy2z39LHHHmvS93j22Wft0P7pp5+uSy65xAYzEyaPxsyBfPTRR/Xkk0/az5s+ffoRn2dWy1966aU2+Jo5kyZwm3pDPV/ShHITtCdNmmRX+ZuA265dOxvKEf44GQgAALjGzp07lZmZabdjOtrCKoQPgiYAAHCMmaZgNq0fPny43efTTD3YtWuXNm3a1GAhEcIPq84BAIBjzKKjn/70p9q2bZsdMjenDZnTjgiZkYGOJgAAAEKCxUAAAAAICYImAAAAQoKgCQAAgJAgaAIAACAkCJoAAAAICYImAAAAQoKgCQAAgJAgaAIAACAkCJoAAABQKPw/8IDDl5OlErIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "airconditioning_count = cleaned_house_price['airconditioning'].value_counts()\n",
    "airconditioning_label = hotwaterheating_count.index\n",
    "axes[0].pie(airconditioning_count, labels=airconditioning_label)\n",
    "sns.barplot(cleaned_house_price, x='airconditioning', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中更多的房子没有空调。\n",
    "\n",
    "从平均房价与空调之间的柱状图来看，有空调的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 是否位于城市首选社区与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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99xju9nN2OHTTjtNbdq0seM3TfDs0aOHo99PvGGMJgDAtUwXulmCpm3btjr77LNt8DRj5p577jmnm4Y4kZOTo+9973t2DKZZ2qjehRdeqFdeecWO4TSTysaMGWNnmdcHSTMO2ITTsWPH2jHEpgv95ZdftksmoemYdQ4AABKamV1uVir47W9/63RTkg5BEwAAJKT9+/dr8eLFtmvcjO3t37+/001KOozRBAAACTvr3ITN+++/n5DpECqaAAAAiAkmAwEAACAmCJoAAACICYImAAAAYoKgCQAAgJggaAIAACAmCJoAAMShyspKu+NNdna23UHJ7P8OuA3raAIAEIeeeOIJvffee/rggw/Uvn17u9Ui4DYETQAAXKSmpkZpaWnHvG7Tpk0aOHCgBg8e3OyvZZbSDofDSkkhDiA26DoHACCGxo0bp5tvvtkepupoqo8//elPbcgzevbsqZ///OeaMmWK7Qb/j//4D3v+H//4h8466yylp6eroKBA06dPV0VFRcNz/vrXv9a7775ru83NbePPf/6zRo0apaysLHXq1ElXX321ioqKGtpitmM017/22msaOXKk/H6//TqRSERz5sxRr1697NcbNmyY/vrXvzY8zoTRH/zgBw33m112HnzwwVb+l0Q8ImgCANAK3dymarhs2TIb0ObOnavHHnus4f5f/epXNtx9+umnNoSaauW3vvUtOwbziy++0HPPPWcDoQmrxv/+7//qxhtv1Omnn66dO3fa20Ztba0NrZ9//rlefPFFbd26Vddff/0h7fnJT36i++67T2vXrtXQoUNtyHzyySf1+9//XqtXr9Ztt92ma665RkuWLLHXmyDarVs3Pf/883bP8FmzZum//uu/9D//8z+t9m+I+MQWlAAAxJCpNpqqoglwpppYH/ReeuklG9pMRdPsyb1w4cKGx0ydOlU+n0+PPvpowzkTNM855xxb1QwEArr11lv12Wef2SrlkXz88ccaPXq0ysrKlJmZaa8999xzbQidOHGivSYYDCovL09vv/22Da4HtsFMOHr66acP+9wm9O7atatR5RM4GIMyAACIsTFjxjSETMMEOtP1bbqkDdPdfSBTkTSVzL/85S8N50xdyFQWt2zZYsdmHs6KFSt011132cfv37/fXm9s27ZNgwYNarjuwK+3ceNGGygnTJhwyFhRE4DrPfzww/rTn/5kn6uqqsref8opp5zAvwqSAUETAACHZWRkNLpdXl6u//zP/7TjMg/WvXv3wz6HqXReeOGF9jABNT8/34ZCc9uEwiN9PfO1jFdffVVdu3ZtdJ0Zw2k8++yzuuOOO2w4NiHZjAF94IEHtHTp0hP4rpEMCJoAAMTYwYHso48+Ur9+/Wz3+OGMGDHCdqv37du3yV9j3bp12rt3rx17aSYP1XedH4updJpAaUKp6Zo/nPfff19nnHGGbrrppoZzZhwpcCxMBgIAIMZMiLv99tu1fv16PfPMM/rd736nGTNmHPH6H//4x3Z9TDMO0ozD3LBhgxYtWtQwGehwTKXTLItknnvz5s12DKiZGHQspjppqpVmApCZtGQC5CeffGKfx9w2TCg2ofWNN97Ql19+aScsLV++vJn/GkgmVDQBAIgxs3SRGdd46qmn2iqmCZn1yxgdjpkJbmZ833nnnXaJIzM+s0+fPrryyiuP+BjTVb5gwQI7G/y3v/2trYqa2ezf/e53j9k+E0jN483scxNSc3Nz7ePNcxmmG9/MiDdf34w1veqqq2x10yyTBBwNs84BAIjxrHMzaWbevHlONwVodXSdAwAAICYImgAAAIgJus4BAAAQE1Q0AQAAEBMETQAAAMQEQRMAAAAxQdAEAABATBA0AQAAEBMETQAAAMQEQRMAAAAxQdAEAABATBA0AQAAoFj4/2D1Tda7X8FgAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "prefarea_count = cleaned_house_price['prefarea'].value_counts()\n",
    "prefarea_label = prefarea_count.index\n",
    "axes[0].pie(prefarea_count, labels=prefarea_label)\n",
    "sns.barplot(cleaned_house_price, x='prefarea', y='price', ax=axes[1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中大部分房子不在城市首选社区。\n",
    "\n",
    "从平均房价与城市首选社区之间的柱状图来看，在城市首选社区的的房子价格也相应高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 装修状态与房价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\AORUS\\AppData\\Local\\Temp\\ipykernel_5256\\1726210345.py:6: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n",
      "  axes[1].set_xticklabels(axes[1].get_xticklabels(), rotation=45, horizontalalignment='right')\n"
     ]
    },
    {
     "data": {
      "image/png": "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qdRz585JQkKCfg+9evXS6exnnnlGHnnkEZkyZQqrs6/T119/LT169ND3rk2dOnWkb9++4u/vr+9xb5vO5hQ2EREVGmRiUImN6WubatWqycMPPyzp6en6QYusGBUOFHeglQ+mq7NPKNasWVMaNmwo9evXl8qVK5s6RndmO6cI0BEoAtaYWq1WDdSff/55ef/997V4yduqsxlAEhFRgeS1AgrBCjJhc+fOzVGpGhERIW3bttUP3P79+zt5pJ5zrrdu3aoFM59++qlmdQcNGiQ9e/aUwYMHy48//iixsbF63G+//SY333yzTrkiI0zXl+lt166droGMiYkRX19fvQAy7AjW0bbK21YEcg0kEREVeA3emjVrtG0Mpq7vv/9+nSpdvHixDBgwQP71r39J7969NQuGadQ///xTW/tERkaaPXy3hOIkVLMjSMcaPLTtmTRpkgaQQ4YMkaVLl+q5RbCOc71hwwbNQpLj7+v9+/drMI7q62bNmmlxGN7T6Af58ccf622AZQINGjTQ9b5YnuFNGEASEVGBfPvttxokdunSRS5evCibNm3SFieY0sOaMUxVHz9+XDOScXFx8ssvv0iTJk3MHrZbQjCIRtbIKN533316XpFZnDZtmn1d3sKFC3UHICwhuOuuu6RWrVpmD9stg0e8r9GcHcEjCpHQSQDvXZzb1157TTORt912m77n8e/yxx9/eGWgzgCSiIgctnfvXg1oUImKJtZY34iMGK7bmocjyMEFmZxGjRpJxYoVzR6225ozZ47MmzdPg8Q9e/boue/QoYPMmjVL709LS5PAwECzh+n2sJMP2iIhUMf72lZ9je0iH330UTlz5oxm2P/44w8tEsMfUPXq1RNvxACSiIgchrVgDz30kGZgEEx26tRJOnfubA9oMKVdo0YNe+EBXV9WDIE5CpP+97//6faFyPrOmDFDp1ax3hRV1yhQwto8tkgqOASOmKZGP030fMSSDFRfv/vuu3o/imf4nr6ERTREROQwVJxiCg+FMghm7rjjDpk5c6Y9i4OMjTc3WS6o3DkdWyCIKekdO3ZoD0JkxHCubfchG4Y1jykpKTkeQ45D8Igpa2TOsZMP3tvoY2pbgzp16lT7jkvejgEkERFdEVqW5DVRhYAxKChIe9917NhRPvjgA/vWepjiQwYSU9qUPwhawHaucf6WLFmi6+5QbY31jJhaLVeunBYlga2Z9Zdffqn7M2NKlfLnSpOvLVu2lKNHj+pXZNRtfxTh32D58uXy999/63IB4hQ2ERHlAR+U2dcsos8gts1DBXCrVq20dcn333+vbXlwGwLIQ4cO6W0ookEbGW8sLCgITJeiz+ADDzwgpUqV0kzX8OHDNduI4iMUdDz44IO6RSG2hUSRB4JztJC5cOGCro1kcZJjfxQhS4s/eNBDExnFgIAAqVKlimbUMWWN9zJ29EErJBQlYStOVF+vWLFCG4jTpSiciIjIbvbs2Ubnzp2N1atX6/VFixYZAQEBxs0332yEhIQYPXv2NJYsWaL3ff3110bDhg2N8PBwo27dukbLli2NP//80+SfwL38+9//NipUqGBMnTrV2LJli9GmTRtjxowZxsmTJ43x48cbNWrUMEaPHm3ExcUZKSkpxrZt24xp06YZS5cuNY4dO2b28N3GpEmTjMWLF9uvz5s3zyhTpoxxww036Fdch6NHjxrVq1c3GjdurPfdcccdRrly5YzNmzebOHrXwwwkERHlgCwiKqlRrIFKVDRJxpQesmDIRGLXDVRdP/300zrNZ1v3iAwOplHZ5zF/she7oJ8gMovopYkehNOnT7cvAUBhB6ZS0VMTO/rgPJPjSwTwXkZ7KfTLvPHGG7V6Ghl0tENCmx70KkVhEva3RrU1Mu7btm3TPo/IumNHJfoHA0giIroMPmRfeOEFraTGtB4CGltfQVRejx8/XoNIBDQIbKhgsLbOz89Pv0eTcCwFKF++vDZox1cbBJGffPKJ9h9EtTV3l3Hc+fPndc0opqJRVY12SNifHTCN/eqrr+p7Hu91BJF0dZfetURERP//QYq1YbfffrtmbZCJ3Llzp37Y2gJIZCNRtIFMJHZCwfoxFHiQY5C/QfCIivayZctqU3DsIoM1kZ999pmug8SaSHjyySe1yhrZYfZ7LFimt0SJEhok4j2ObDqykLb78J7HWlNbII92Pej7SFdh9hw6ERG5hqysLP36119/2b9fvny50axZM6N79+7GmjVrchy/du1ao3///saRI0dMGa87s51frMnr0aOH8cMPP9jve+qpp4yqVasab731lnH27Nkcjzt37pzTx+op5zo5OVm/nj9/3njyyScNPz8/Xd+b/ZjMzEzj2WefNSIjI40LFy6YOGrXxzY+RERkz8Qgw4W9lbEeDNq3b6+Vv1gTht6Oa9eutT8GffI+/fRTrcKm/LGtGrNtmYf+jqj0zV7x/vrrr0uvXr205yD2Dj979qz9PmytR46/r9ESCdPXaICPLC+yjdhFBntYL1u2TI/BschE4v2OjDuq4OnKGEASEXkxW1NkfIBim7yBAwfq1B32tLZBoQzWhqEnIdaOobjABr0g6dqwqwnYimb27dunRUgIEvG1cePGevvGjRv161tvvSX9+vXTIg+06WHz6oLJHqgjIAwPD7cH4tir/d5779X3OoposgeRtqUDdBVmp0CJiMj5Vq1aZaSlpdmvx8bGavuYKVOm6HXch6m+zz//XKe0YdmyZUbt2rWNoUOHGhcvXjRt7O7m5ZdfNoYMGZLjnP3222/aKgbTpOnp6cY777xjtG3b1ggLCzPatWtnP27s2LHGvn37TBq5+0NLKbTgQWuq7I4fP67T1Zi6fvDBBw2LxWKsWLHCtHG6IxbREBF5GeydjD2rsa+yLdOC3TXQPBzVvSggQIEMdt5AGxMUeqC5NXacwbZuaCLOXWbyDxlcTJXinMXHx2smDNP+aHmEbQkxRY0CJSwJQEYSRUrI9CITjH8Hyp8xY8ZIbGysfPjhh/bbUKCE9zSWZeA9jvf+nDlz9Djs6INiJVS4h4SEaCET5R/b+BAReRnsYY2gBUHM4cOHJSoqSqeiUfWL6T5fX19p06aNrn8cOXKkBjYIcGbPnm320N261+OqVas0AEcbHgSJP//8s/zwww9SunRpnUqtWrWqHtupUydtI4NpV3Ks9RTey9HR0fbbsKb3kUcekf79+8uvv/6q73kElNhNBi180PcR+13bug9Q/jEDSUTkRfBBiWwLPki3b9+uhQQIVEaNGqWZGAQvaBeD22xZxurVq2twkz0YovzJfr7Qfgf9HRGgo6ADmUlbI3awZX537dolzZo1M2nE7gutpwBFMeiZiT3CsS3hli1btBUV/iAaOnSoNgbH9oQ4xt/fXx/D4NFxDCCJiLxI9g9K7DSD3TVQPINgEb3xBgwYYL8fldeYSv3pp5+0+prB4/VB30HsrzxkyBB5+eWXtXgGmUhYvHixLilAFu3HH3/krifXAYH4V199pe/1zz//XMaNG6cBI5YM2Lz22mu6nKB27dqmjtWdMeQmIvISuVcsIROJXTmwphHtYjCdh91lbFmcxx9/XNeLYS0kpvzI8XO9detWDRrRPiYhIUFat26trY/+/PNPnUK1VV1jR5py5cpphXuTJk1MHr17QxYdQfiiRYtk0KBBepsteMT7GVPaeK9ji07u6FNwXANJROQFbNPPmEJFyxIEK8h+NW3aVLMzKNhA77u7775bP2BPnDiha8batm2rU9jkOLTf+c9//qNT1whgsA0hdvDBOj1kdO+77z5p3ry57oONoBHBO3b1Icff1wcOHJC4uDjNqtt6ZSKIRACJQiUEjoBdfn777TfNStatW9fk0bs3BpBERF4CU9UIEBs1aqQftshAYioVffBsQST6E6KJNbKPtvVh5DgE4FgS0LdvX7njjjs0w4vzj+ARhTT4+vvvv+u5xzq9mTNncovCAkLhF851aGioZnlxfvEeRtBuCyJxjlFxDcnJyXosXR8GkEREXgDtTLCeEWvrhg0bJuvWrdNWPpiexu3I0iCIRFYMa8MwvYe9g8lxKNrA9DT2EkdgGBkZqbejvQymr7MHkevXr9f7a9SoYfaw3TbziBY9yPQiw4vzjUARfxjhvVysWDHdhaZr165aMIb3PBUOFtEQEXk4VKAiC4OM4vvvv6+3YS0eMjT4EMaUNSCIxIcvAkgGjwULaA4dOqTVvwgMUcyRPdOFNkk4BoUdaNuDc92qVStTx+2ucB5XrFghe/fu1cAR2XPAdpvIrGPnJLj//vs1A4yWSdxys3CxiIaIyAPZJpdQrLF69WrNPGKNY2Jiov2Yhg0byhNPPKEfsJjaRrU1Ap7y5cubOHL3DWiQtUXWC5XsmFIF9NHEtKqNrW0SmrOjcIYK9r7OzMzUHpoPP/yw/PHHH/pHj82kSZO0jyZaIqFYBu95FNaw4rqQmbwTDhERFZHFixcbUVFRum3hypUrjU6dOhl16tQx1q1bd9l2b48++qh9y0LKP2yFB/Hx8cbtt99uvPXWW3rdarUar7zyitG6dWtjxIgRRlJSUo7HYQtDKhhsS1i3bl39fuTIkYaPj4/xxRdfGKmpqTmOw3mvVq2aERcXZ9JIPRvXQBIReaDz589rxW/FihW13yAgE4mt8rD7DKaybT0IgRXABYeqdqxpxMfplClT7OsZcU7RbxA9HtEDEuvysvciJMeXCJw7d06zvLfccotWrwOWA6BACS2psAwj+/sYvUzLlClj4sg9F6ewiYg8zIYNG3SfX2ydl71VCVryYEq1SpUqMmLECG0lY8PgseDQhB39GxEoIsCx7fiDc4ptC1EBjEIOTKkyZ1MwCB4xVY11pLa1jdjbGrCWFIU0KA7Dv4HtdsA2kVQ0GEASEXkYZBaxvnHbtm2ye/duLeawadeuna57RCYM2+mhUphBTcFb9WB9HfYNRxYS/QcnTpyo6/GwCwrOK4LIJ598Utc+olKYu/k4Dusd8R5G/0Zsv4kq97Jly2rbI7x/bUFknz59tG0SdvOx4fkuOpzCJiLyoGrrixcvSosWLfR6t27dNBuJHoQdOnTQPZht8GGM/a0xxU0FO9eo/n311Ve1aCY8PFz7OqJdTJcuXeSDDz7Q25CJ5D7L1wdFSGjHExsbq1sUosIa/TNtfR2RcbT10ESQjj+QWDBT9BhAEhG5Ofwax4cr1oU1a9ZMM174Cqg+3bVrl/YfRMCTPYik6zN48GBdVzphwgTp3bu3BoxYFoDAHWvxsOsJAh8qOGwFiYw6lmNgHSnW9uK9/NFHH+n7ffr06XocMpFBQUFmD9er8M8iIiI3k70Vj22aDoUC48ePlx07duiH6qZNm+x7WmMdJNaOYWoP04GUf7b2MMgk5obMbufOnbWY47vvvtNG7JjORjsk3Ddq1CguD7hOERERcvvtt+t5xr7h6E86ZMgQXe+ILLqt/yODR+djBpKIyI2gvyD6B6KKGuvrUlJStIjDZv78+fLf//5XbrrpJnnooYfsmUhMa2MLNwSWaLRM14agG1PV2D8cfRuxNzjOffv27fW6DdY3IoBEhTu20EPWEY3EEfxwKjV/zp49K6VKlbJXW4Pt+6NHj2onAfR9RCYS72UUK6EhO3b86d+/v7z55ptm/wjex+Q2QkRElE9z5841SpcurX0bYe3atcbzzz9vHDhwIMdx33zzjVGxYkXjnnvuMTZv3my//ciRI04fs7uaN2+eUa5cOWPHjh322/r27WuEhIQYy5Yt0z6P2XXp0sWoUaOGMXPmTCMhIcGEEbuv0aNHG4MHDzZSUlL0OvqW2t7Ttj6bhw8fNvr376/nPyYmRm87c+aM8d577132/ifnYABJROQmXnvtNW0EDkuWLDHKly9vREZGGs8995x+wGb3zjvvGOHh4cbAgQONTZs2mTRi9/Xll18aFSpUMDIyMvRcP/vss3p7t27dNLBcunRpjiDymWeeMcLCwox69eqxSbgDPv30UyMoKMjexD42Ntbo2rWrvq8PHTqUI4jEMY0bN9Y/ojZu3Ki3ZWZmmjh678Y1kEREbgItePCHP6ZQUe2LilRUAaOoAFPaaBBugzWR2L7w77//5taEBVCrVi3tpYlCDVRV25YCLFq0SBo1aqTNqzGljWUBgErrH3/8UZYvXy7Fixc3efTutcYU57hmzZq6RhfncMyYMbpHOIq+Dh48aJ/SxjGNGzeWuLg4LVJC4Qzb9JiHASQRkZvA2i+040HTanyPD16sicT6sDlz5sjMmTO1Tx6gByRamiDgKVeunNlDdzsIGLF+Ec2rETB27NjRfh+KZJo2bar7LaOgA/uIv/3221KhQgWJiooyddzuBo2+Y2JitCgGe7Lj+s0336wFYTj/OO9HjhyxH491pXPnztXqbBTOMIA0D4toiIjcBApm0P+uevXq2nMwOjpaP0zh3Xff1SwkeuIh+4gAct26ddKgQQOzh+12UCiDC7Jc2JZw//79WqiEc1y5cmX7cdgqct++fZqFxDaFaN5OjkMDcOwggwIk/CFk2xUJBV8oCENBEqqtkWFHw3a0SkJ2nczFAJKIyI2gUTiqqLHvL/ZZbtKkiT2IRMse9HxET0hkxlgBXDjnGg2r0XcQ2S8EkZUqVcpxHHZJ8ff3N22c7gpBOv7gQX9HbK+JwBDT19im0LZ/NYLGadOmacsetPDBex7T2GQ+BpBERG4IPQe/+eYbexD55Zdfmj0kt4Q1dsjo5pY7KETLmA8//FDXN9qCSO4yUzDZW/Vk32kGWVy043nuuedyBJG2Y5CZZL9H18F3PhGRG8Je1uh/N3r0aF332KNHD7OH5HawZhTNvjEFbWsUjuAGmTEEj8h+oUk4ijXuuece7feIY1FAc/z4cQaP1xE8YnoaRWAomgkNDdX7MF2NXZRQGDZ79mztDWmDAJPBo2v5pxMqERG5FXzwIohEgIMP3BMnTrDi2gHIPCLjhfOILfIwRQpoEo7gEc3YUdhhy0RiWQCmXBcuXJjnzjR0bQgeFyxYoPuHY4ckrNXFeUUhGNbrIoiE119/Xdf8jhgxQkqWLGn2sCkPnMImIvKAtXqYcmX7mIJBNgxr7zB1itYxWB6AVkkIaLD2EUFP9ulq25QrOZ55xPpc7CGOyvV+/fpp9rxnz57aour555/XwjDAvwfW9qJCOzIy0uzhUx4YQBIRkVfDNOrkyZN1WQACF7SRQUEHijt8fX2vuHaPHPPzzz/rul3s5Y7CGFvLIwTw3bp1k1tvvVUzkLZqdtv2huSaGEASEZHXQxuZ9957TzIzM7U9T+vWrfV2Bo3Xx3b+kMFFJTUyjYGBgdqGCsVf2ddE9u7dW5u3Y1kBvvLcuzauACYiIq9hy5n8+eef2vZozZo1eh0ZsIceekinqRFA2m5nAHN9cP5wLtHUHu13Nm7cqMst0Hj91KlTej/+TZo3b67ZyUOHDmm7JNtjyXWxiIaIiLwGgpLvvvtOhg4dqlPWKKBBVgwV2WgcDjNmzJBJkyZpoIO1kHR90IgdOyKhGAltp7CTEs452vJgxxlMZSOIxJIBFNUgQ0mujxlIIiLyCghSUNk7a9Ys7eWIfavRNgZr81AVDAgiH374Yblw4YJMnz5dj6frg2AdATkyvjjf2AZyxYoVWqD00ksvafcAW7bRtgsNuT5mIImIyKPZ1tKhhyN6PKJaHfuIY/cTNARHRTX6aSKI/Prrr3W7SLTywTo8bGFIBWvQjr6NtrZS6J2JdZATJ06Uxx9/XAN4ZCLbtm2rGcc33nhDC5Y4be0+GEASEZFHQ1CC3o2vvPKKlC1bVnbs2GEPVLBVIZqw4zra+KDv45IlS/QrFQx6aqKSHZlH7GFdrlw5vR27y6BI6d///rcG6JjORjENAvrs1e7kHjiFTUREHm3Dhg0avCCoQdYRfTMxTW1jCyJfeOEF3WEGFyo4NGTH1pq4YLkApqhtsJsPimmwNSSKlVq1aqUNxcn9sI0PERF5LBRl/PXXX7Jnzx5tVI1de9atW6eNrFG0gV1RbLDeEVPc4eHhpo7ZU6BtD87zgw8+KMOHD9dMJIJ3rIOsXLmyLhnIax9ycg8MIImIyCNhzWONGjXk9OnTOm2K6mrAWrzVq1drAIO1kPPmzTN7qB4dRGKrQqwrxdaQO3fu1Cp4BPHczce9MYAkIiKPhfWOyIKhUOP777+3F3UgiER/wg4dOsjAgQN1SpWKBpqEjxo1SvcXR3Z3zpw5WolN7o0BJBEReVS1Naai0Q4G09EIHBFE3n777dKoUSMNXmzb4yGIRBFHmTJlpFatWmYP36Nh+0K0RkJldunSpc0eDhUCBpBEROQxwSP2tUY2cd++fdKyZUvp2rWr7jKDILJz584SHR2dI4gkooJhFTYREbk9BI+You7bt6/2b0S177lz57S6evfu3dKgQQNZunSp7Nq1S2/DfURUcMxAEhGR28P0aL9+/TTbiEbVsbGx2i6md+/e2rTaZuvWrbomEr0eUQlMRAXDRuJEROT2sG81ijSwswn6DmL6GsGkLXicP3++Tl9jHeSWLVu4ZR7RdeIUNhERuR3b5BmCwWPHjuluJmhIvXnzZmnTpo2ufbS17fn7779l8eLFOn2NxzF4JLp+DCCJiMgtC2bQBBxZxg8++EC3xsOUNJpWN2nSRN5//3379njvvfeerF+/XlvHcK9losLBKWwiInIrCAKRURw0aJC8/fbbum+1j4+PTlcnJSVpJfbkyZP1toMHD8rcuXO152OlSpXMHjqRx2ARDRERuRVsR3jvvfdKzZo1ZcKECbo9HqapUYWNfo4ff/yxpKWl6Q40qL4ePXq0fiWiwsMMJBERuRXkPQ4dOiRRUVESFxcnL7zwgu55vX//fvH395eRI0fqVDYykJja5ppHosLHNZBERORWgoODZcSIEfLhhx9KtWrV5Pjx49r3EV979uwpixYt0h1PQkJCGDwSFRFmIImIyO1gCrt58+YaNHbq1Em3JYTMzExd64ivyD4SUdHgGkgiInJ7e/bs0S0KUXH922+/cc0jURHjn2dEROTWYmJi5M0339SekKtWrWLwSOQEzEASEZFbS0lJkU2bNknVqlXZqofISRhAEhEREZFDWIVNRERERA5hAElEREREDmEASUREREQOYQBJRERERA5hAElEREREDmEASUREREQOYQBJRERERA5hAElERJQLWiQ/+OCDUrJkSbFYLLrLTVFp166dPP7444V2LMa7YMGCQhodUd64lSEREVEuS5YskdmzZ8vKlSulevXqUqpUqSJ7rW+//Vb8/f0L7flOnjwpJUqUEGfBeUJQe+HCBYceh3N72223yfnz5yUiIqLIxkdFgwEkERFRLgcOHJBy5crJTTfdVODnsFqt+QoMkeUsTFFRUYX6fER54RQ2ERFRNvfff7+MGDFCjh49qtPB2GMbl6lTp+Y4rnHjxvLiiy/ar+PYGTNmSI8ePSQ0NFQmTJig9+O4OXPm6HMUL15cBg4cKImJiVeclp4+fbrUrFlTgoKCpGzZsnLXXXfleN2srCwZPXq0Bp4IFrOPIfcU9uHDh/U6spzI9oWEhEijRo1k3bp1OR4za9Ys3Ucc9/fu3VumTJmSIyu4detWfXx4eLgUK1ZMmjVrpvuPI4s4dOhQiY+P19fBxTYe/MzNmzfXx2CcgwYNkjNnztjHhecDZEvxOJx3uNa5xvICfF+5cmUJDAyU8uXLy8iRIx36N6brxwCSiIgom2nTpslLL70kFStW1OngjRs35vuxCGwQgG3fvl2GDRtmz2YioFu0aJFeVq1aJZMmTcrz8QjKEAzh9ffu3atT6W3bts1xzKeffqoB6vr16+W1117TY5ctW3bVcY0dO1aeeuopXctZq1YtufvuuyUjI0PvW7t2rfznP/+Rxx57TO/v1KmTBr/ZDR48WM8HzkVMTIw8++yzml1FhhbBHoJKnCtc8Dq2DOzLL7+swSd+fgSNtiARwer8+fP1e/yceBzOe37gcW+99ZbMnDlT9u3bp8/dsGHDfD2WCg+nsImIiLJBlhBZM19fX4eng5FlQ0Yud8YQ6wTxnDBkyBBZvnz5ZUEaIOuJ4PDOO+/U46tUqSJNmjTJcUx0dLS88MIL+j0yle+++64+HwK/K0FQ161bN/1+/PjxUr9+fdm/f7/UqVNH3nnnHenSpYs98EOA+fvvv2uwm31cTz/9tB5ve93s5wsZxNznyhZAA9aRvv3229KiRQtJSkqSsLAw+9R9mTJlHFoDibHgtTp27KhBLDKRLVu2zPfjqXAwA0lERFRIMGWbG6ZkbcEjYG2lbSo3NwSBCBoRcCHQ/OKLL+TixYuXBZDZXe358noMjgfbY5ABzB2A5b4+atQoGT58uAZtyJ4iq3otyFR2795dAzz8/Lfeeqs9ALwe/fr1k5SUFD1HDzzwgHz33Xf2bCo5DwNIIiKia/Dx8dG1d9lhijY3ZA9zy11Ig2wdspJ5QaC1efNmmTt3rgZ648aN0zWL2SucHXm+vB6D4+Faj8k9Nb9z507NYv76669Sr149DdyuJDk5WTp37qxT2wiCMfVtOz49Pf26zjWmvxH0Yq1ocHCwPPzwwzrNn9e/BxUdBpBERETXULp0aV2nZ5OQkCCHDh0qktfy8/PTTB/WN27btk3XDiJoKyq1a9e+bJ1nXus+MbX9xBNPyNKlS6VPnz7yySef6O0BAQGSmZmZ49g9e/bIuXPnNFt5yy236NR37iwpHge5H5ufc43AEdlNTIujkAdFQVh3Ss7DNZBERETX0L59e13HiKAF6/WQGcQaycKGdYcHDx7UjBqqk3/88UfNFCLIKyqoOMfrofIaPx+C1Z9++smeqcR0MdY/ohq8WrVq8vfff2uA2bdvX/sUPdY1Yh0msqWo5Ma0NQJErK9Egc6OHTu0oCY7TNXjNfAzd+3aVYNCrI281rnGfQg6W7Vqpa/1+eef62PxfOQ8zEASERFdw5gxY3QNH4pbMI3bq1cvueGGGwr9dRAwoeUOgqi6devK+++/r9PZKHopKm3atNHXQQCJABCV38g0oo0QIHhDNvHee+/VLGT//v216AbFOIBKbASJAwYM0OwhMqf4ikDvm2++0eluZCLfeOONHK9boUIFfQ5UdKNd0aOPPpqvc41zhLZDGDfWdv7yyy/yww8/SGRkZJGdI7qcxci90ICIiIi8GopTMA29Zs0as4dCLopT2ERERF4O2UFUgKMICNPX6DWJIhWiK2EGkoiIyMthWhrFKNghB+1xsC4S09JEV8IAkoiIiIgcwiIaIiIiInIIA0giIiIicggDSCIiIiJyCANIIiIiInIIA0giIiIicggDSCIiIiJyCANIIiIiInIIA0giIiIicggDSCIiIiISR/wfVkygxeSNtswAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(1, 2)\n",
    "furnishingstatus_count = cleaned_house_price['furnishingstatus'].value_counts()\n",
    "furnishingstatus_label = furnishingstatus_count.index\n",
    "axes[0].pie(furnishingstatus_count, labels=furnishingstatus_label)\n",
    "sns.barplot(cleaned_house_price, x='furnishingstatus', y='price', ax=axes[1])\n",
    "axes[1].set_xticklabels(axes[1].get_xticklabels(), rotation=45, horizontalalignment='right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此数据集中简装和毛坯的房子较多，1/4左右房子为精装。\n",
    "\n",
    "从平均房价与装修状态之间的柱状图来看，精装的房子价格高于简装，简装高于毛坯。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在分析步骤中，我们将利用`cleaned_house_price`的数据，进行线性回归分析，目标是得到一个可以根据房屋各个属性对价格进行预测的数学模型。\n",
    "\n",
    "我们先引入做线性回归所需的模块。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "import statsmodels.api as sm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "然后可以创建一个新的DataFrame`lr_house_price`，让它作为我们进行线性回归分析所用的数据。\n",
    "\n",
    "和`cleaned_house_price`区分开的原因是，我们在进行回归分析前，还可能需要对数据进行一些准备，比如引入虚拟变量，这些都可以在`lr_house_price`上执行。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr_house_price = cleaned_house_price.copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于数据里存在分类变量，无法直接建立线性回归模型。我们需要引入虚拟变量，也就是用0和1分别表示是否属于该分类。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>parking</th>\n",
       "      <th>mainroad_yes</th>\n",
       "      <th>guestroom_yes</th>\n",
       "      <th>basement_yes</th>\n",
       "      <th>hotwaterheating_yes</th>\n",
       "      <th>airconditioning_yes</th>\n",
       "      <th>prefarea_yes</th>\n",
       "      <th>furnishingstatus_semi-furnished</th>\n",
       "      <th>furnishingstatus_unfurnished</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>13300000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12250000</td>\n",
       "      <td>8960</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>12250000</td>\n",
       "      <td>9960</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12215000</td>\n",
       "      <td>7500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11410000</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>540</th>\n",
       "      <td>1820000</td>\n",
       "      <td>3000</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>541</th>\n",
       "      <td>1767150</td>\n",
       "      <td>2400</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>542</th>\n",
       "      <td>1750000</td>\n",
       "      <td>3620</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>1750000</td>\n",
       "      <td>2910</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>544</th>\n",
       "      <td>1750000</td>\n",
       "      <td>3850</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>545 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        price  area  bedrooms  bathrooms  stories  parking  mainroad_yes  \\\n",
       "0    13300000  7420         4          2        3        2             1   \n",
       "1    12250000  8960         4          4        4        3             1   \n",
       "2    12250000  9960         3          2        2        2             1   \n",
       "3    12215000  7500         4          2        2        3             1   \n",
       "4    11410000  7420         4          1        2        2             1   \n",
       "..        ...   ...       ...        ...      ...      ...           ...   \n",
       "540   1820000  3000         2          1        1        2             1   \n",
       "541   1767150  2400         3          1        1        0             0   \n",
       "542   1750000  3620         2          1        1        0             1   \n",
       "543   1750000  2910         3          1        1        0             0   \n",
       "544   1750000  3850         3          1        2        0             1   \n",
       "\n",
       "     guestroom_yes  basement_yes  hotwaterheating_yes  airconditioning_yes  \\\n",
       "0                0             0                    0                    1   \n",
       "1                0             0                    0                    1   \n",
       "2                0             1                    0                    0   \n",
       "3                0             1                    0                    1   \n",
       "4                1             1                    0                    1   \n",
       "..             ...           ...                  ...                  ...   \n",
       "540              0             1                    0                    0   \n",
       "541              0             0                    0                    0   \n",
       "542              0             0                    0                    0   \n",
       "543              0             0                    0                    0   \n",
       "544              0             0                    0                    0   \n",
       "\n",
       "     prefarea_yes  furnishingstatus_semi-furnished  \\\n",
       "0               1                                0   \n",
       "1               0                                0   \n",
       "2               1                                1   \n",
       "3               1                                0   \n",
       "4               0                                0   \n",
       "..            ...                              ...   \n",
       "540             0                                0   \n",
       "541             0                                1   \n",
       "542             0                                0   \n",
       "543             0                                0   \n",
       "544             0                                0   \n",
       "\n",
       "     furnishingstatus_unfurnished  \n",
       "0                               0  \n",
       "1                               0  \n",
       "2                               0  \n",
       "3                               0  \n",
       "4                               0  \n",
       "..                            ...  \n",
       "540                             1  \n",
       "541                             0  \n",
       "542                             1  \n",
       "543                             0  \n",
       "544                             1  \n",
       "\n",
       "[545 rows x 14 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_house_price = pd.get_dummies(lr_house_price, drop_first=True, columns=['mainroad', 'guestroom',\n",
    "                                                         'basement', 'hotwaterheating',\n",
    "                                                         'airconditioning','prefarea', \n",
    "                                                         'furnishingstatus'], dtype=int)\n",
    "lr_house_price"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，我们要把因变量和自变量划分出来。\n",
    "\n",
    "因变量是`price`变量，因为我们进行线性回归的目的，是得到一个能根据其它可能对房屋价格有影响的变量，来预测销售价格的模型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = lr_house_price[\"price\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以把除价格之外的都纳入自变量，但需要查看它们之间的相关性。如果其中有些变量之间相关性很高，会导致共线性。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = lr_house_price.drop(\"price\",axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>parking</th>\n",
       "      <th>mainroad_yes</th>\n",
       "      <th>guestroom_yes</th>\n",
       "      <th>basement_yes</th>\n",
       "      <th>hotwaterheating_yes</th>\n",
       "      <th>airconditioning_yes</th>\n",
       "      <th>prefarea_yes</th>\n",
       "      <th>furnishingstatus_semi-furnished</th>\n",
       "      <th>furnishingstatus_unfurnished</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>area</th>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bedrooms</th>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bathrooms</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stories</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>parking</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mainroad_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>guestroom_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>basement_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hotwaterheating_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>airconditioning_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>prefarea_yes</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>furnishingstatus_semi-furnished</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>furnishingstatus_unfurnished</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                  area  bedrooms  bathrooms  stories  parking  \\\n",
       "area                              True     False      False    False    False   \n",
       "bedrooms                         False      True      False    False    False   \n",
       "bathrooms                        False     False       True    False    False   \n",
       "stories                          False     False      False     True    False   \n",
       "parking                          False     False      False    False     True   \n",
       "mainroad_yes                     False     False      False    False    False   \n",
       "guestroom_yes                    False     False      False    False    False   \n",
       "basement_yes                     False     False      False    False    False   \n",
       "hotwaterheating_yes              False     False      False    False    False   \n",
       "airconditioning_yes              False     False      False    False    False   \n",
       "prefarea_yes                     False     False      False    False    False   \n",
       "furnishingstatus_semi-furnished  False     False      False    False    False   \n",
       "furnishingstatus_unfurnished     False     False      False    False    False   \n",
       "\n",
       "                                 mainroad_yes  guestroom_yes  basement_yes  \\\n",
       "area                                    False          False         False   \n",
       "bedrooms                                False          False         False   \n",
       "bathrooms                               False          False         False   \n",
       "stories                                 False          False         False   \n",
       "parking                                 False          False         False   \n",
       "mainroad_yes                             True          False         False   \n",
       "guestroom_yes                           False           True         False   \n",
       "basement_yes                            False          False          True   \n",
       "hotwaterheating_yes                     False          False         False   \n",
       "airconditioning_yes                     False          False         False   \n",
       "prefarea_yes                            False          False         False   \n",
       "furnishingstatus_semi-furnished         False          False         False   \n",
       "furnishingstatus_unfurnished            False          False         False   \n",
       "\n",
       "                                 hotwaterheating_yes  airconditioning_yes  \\\n",
       "area                                           False                False   \n",
       "bedrooms                                       False                False   \n",
       "bathrooms                                      False                False   \n",
       "stories                                        False                False   \n",
       "parking                                        False                False   \n",
       "mainroad_yes                                   False                False   \n",
       "guestroom_yes                                  False                False   \n",
       "basement_yes                                   False                False   \n",
       "hotwaterheating_yes                             True                False   \n",
       "airconditioning_yes                            False                 True   \n",
       "prefarea_yes                                   False                False   \n",
       "furnishingstatus_semi-furnished                False                False   \n",
       "furnishingstatus_unfurnished                   False                False   \n",
       "\n",
       "                                 prefarea_yes  \\\n",
       "area                                    False   \n",
       "bedrooms                                False   \n",
       "bathrooms                               False   \n",
       "stories                                 False   \n",
       "parking                                 False   \n",
       "mainroad_yes                            False   \n",
       "guestroom_yes                           False   \n",
       "basement_yes                            False   \n",
       "hotwaterheating_yes                     False   \n",
       "airconditioning_yes                     False   \n",
       "prefarea_yes                             True   \n",
       "furnishingstatus_semi-furnished         False   \n",
       "furnishingstatus_unfurnished            False   \n",
       "\n",
       "                                 furnishingstatus_semi-furnished  \\\n",
       "area                                                       False   \n",
       "bedrooms                                                   False   \n",
       "bathrooms                                                  False   \n",
       "stories                                                    False   \n",
       "parking                                                    False   \n",
       "mainroad_yes                                               False   \n",
       "guestroom_yes                                              False   \n",
       "basement_yes                                               False   \n",
       "hotwaterheating_yes                                        False   \n",
       "airconditioning_yes                                        False   \n",
       "prefarea_yes                                               False   \n",
       "furnishingstatus_semi-furnished                             True   \n",
       "furnishingstatus_unfurnished                               False   \n",
       "\n",
       "                                 furnishingstatus_unfurnished  \n",
       "area                                                    False  \n",
       "bedrooms                                                False  \n",
       "bathrooms                                               False  \n",
       "stories                                                 False  \n",
       "parking                                                 False  \n",
       "mainroad_yes                                            False  \n",
       "guestroom_yes                                           False  \n",
       "basement_yes                                            False  \n",
       "hotwaterheating_yes                                     False  \n",
       "airconditioning_yes                                     False  \n",
       "prefarea_yes                                            False  \n",
       "furnishingstatus_semi-furnished                         False  \n",
       "furnishingstatus_unfurnished                             True  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.corr().abs() > 0.8"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从以上输出来看，不同变量之间相关系数的绝对值均小于或等于0.8。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，给模型的线性方程添加截距。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>const</th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>parking</th>\n",
       "      <th>mainroad_yes</th>\n",
       "      <th>guestroom_yes</th>\n",
       "      <th>basement_yes</th>\n",
       "      <th>hotwaterheating_yes</th>\n",
       "      <th>airconditioning_yes</th>\n",
       "      <th>prefarea_yes</th>\n",
       "      <th>furnishingstatus_semi-furnished</th>\n",
       "      <th>furnishingstatus_unfurnished</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>8960</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>9960</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>7500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>7420</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>540</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3000</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>541</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2400</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>542</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3620</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2910</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>544</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3850</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>545 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     const  area  bedrooms  bathrooms  stories  parking  mainroad_yes  \\\n",
       "0      1.0  7420         4          2        3        2             1   \n",
       "1      1.0  8960         4          4        4        3             1   \n",
       "2      1.0  9960         3          2        2        2             1   \n",
       "3      1.0  7500         4          2        2        3             1   \n",
       "4      1.0  7420         4          1        2        2             1   \n",
       "..     ...   ...       ...        ...      ...      ...           ...   \n",
       "540    1.0  3000         2          1        1        2             1   \n",
       "541    1.0  2400         3          1        1        0             0   \n",
       "542    1.0  3620         2          1        1        0             1   \n",
       "543    1.0  2910         3          1        1        0             0   \n",
       "544    1.0  3850         3          1        2        0             1   \n",
       "\n",
       "     guestroom_yes  basement_yes  hotwaterheating_yes  airconditioning_yes  \\\n",
       "0                0             0                    0                    1   \n",
       "1                0             0                    0                    1   \n",
       "2                0             1                    0                    0   \n",
       "3                0             1                    0                    1   \n",
       "4                1             1                    0                    1   \n",
       "..             ...           ...                  ...                  ...   \n",
       "540              0             1                    0                    0   \n",
       "541              0             0                    0                    0   \n",
       "542              0             0                    0                    0   \n",
       "543              0             0                    0                    0   \n",
       "544              0             0                    0                    0   \n",
       "\n",
       "     prefarea_yes  furnishingstatus_semi-furnished  \\\n",
       "0               1                                0   \n",
       "1               0                                0   \n",
       "2               1                                1   \n",
       "3               1                                0   \n",
       "4               0                                0   \n",
       "..            ...                              ...   \n",
       "540             0                                0   \n",
       "541             0                                1   \n",
       "542             0                                0   \n",
       "543             0                                0   \n",
       "544             0                                0   \n",
       "\n",
       "     furnishingstatus_unfurnished  \n",
       "0                               0  \n",
       "1                               0  \n",
       "2                               0  \n",
       "3                               0  \n",
       "4                               0  \n",
       "..                            ...  \n",
       "540                             1  \n",
       "541                             0  \n",
       "542                             1  \n",
       "543                             0  \n",
       "544                             1  \n",
       "\n",
       "[545 rows x 14 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = sm.add_constant(X)\n",
    "X"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下一步就可以调用OLS函数，利用最小二乘法来得到线性回归模型的参数值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = sm.OLS(y,X).fit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为了查看模型结果，我们使用`summary`方法来获得总结信息。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>          <td>price</td>      <th>  R-squared:         </th> <td>   0.682</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.674</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   87.52</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Thu, 05 Jun 2025</td> <th>  Prob (F-statistic):</th> <td>9.07e-123</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:08:43</td>     <th>  Log-Likelihood:    </th> <td> -8331.5</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td>   545</td>      <th>  AIC:               </th> <td>1.669e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>   531</td>      <th>  BIC:               </th> <td>1.675e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>    13</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "                 <td></td>                    <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>                           <td> 4.277e+04</td> <td> 2.64e+05</td> <td>    0.162</td> <td> 0.872</td> <td>-4.76e+05</td> <td> 5.62e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>area</th>                            <td>  244.1394</td> <td>   24.289</td> <td>   10.052</td> <td> 0.000</td> <td>  196.425</td> <td>  291.853</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bedrooms</th>                        <td> 1.148e+05</td> <td> 7.26e+04</td> <td>    1.581</td> <td> 0.114</td> <td>-2.78e+04</td> <td> 2.57e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>                       <td> 9.877e+05</td> <td> 1.03e+05</td> <td>    9.555</td> <td> 0.000</td> <td> 7.85e+05</td> <td> 1.19e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>stories</th>                         <td> 4.508e+05</td> <td> 6.42e+04</td> <td>    7.026</td> <td> 0.000</td> <td> 3.25e+05</td> <td> 5.77e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>parking</th>                         <td> 2.771e+05</td> <td> 5.85e+04</td> <td>    4.735</td> <td> 0.000</td> <td> 1.62e+05</td> <td> 3.92e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>mainroad_yes</th>                    <td> 4.213e+05</td> <td> 1.42e+05</td> <td>    2.962</td> <td> 0.003</td> <td> 1.42e+05</td> <td> 7.01e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>guestroom_yes</th>                   <td> 3.005e+05</td> <td> 1.32e+05</td> <td>    2.282</td> <td> 0.023</td> <td> 4.18e+04</td> <td> 5.59e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>basement_yes</th>                    <td> 3.501e+05</td> <td>  1.1e+05</td> <td>    3.175</td> <td> 0.002</td> <td> 1.33e+05</td> <td> 5.67e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>hotwaterheating_yes</th>             <td> 8.554e+05</td> <td> 2.23e+05</td> <td>    3.833</td> <td> 0.000</td> <td> 4.17e+05</td> <td> 1.29e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>airconditioning_yes</th>             <td>  8.65e+05</td> <td> 1.08e+05</td> <td>    7.983</td> <td> 0.000</td> <td> 6.52e+05</td> <td> 1.08e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>prefarea_yes</th>                    <td> 6.515e+05</td> <td> 1.16e+05</td> <td>    5.632</td> <td> 0.000</td> <td> 4.24e+05</td> <td> 8.79e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>furnishingstatus_semi-furnished</th> <td>-4.634e+04</td> <td> 1.17e+05</td> <td>   -0.398</td> <td> 0.691</td> <td>-2.75e+05</td> <td> 1.83e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>furnishingstatus_unfurnished</th>    <td>-4.112e+05</td> <td> 1.26e+05</td> <td>   -3.258</td> <td> 0.001</td> <td>-6.59e+05</td> <td>-1.63e+05</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>97.909</td> <th>  Durbin-Watson:     </th> <td>   1.209</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td> <th>  Jarque-Bera (JB):  </th> <td> 258.281</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td> 0.895</td> <th>  Prob(JB):          </th> <td>8.22e-57</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 5.859</td> <th>  Cond. No.          </th> <td>3.49e+04</td>\n",
       "</tr>\n",
       "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.<br/>[2] The condition number is large, 3.49e+04. This might indicate that there are<br/>strong multicollinearity or other numerical problems."
      ],
      "text/latex": [
       "\\begin{center}\n",
       "\\begin{tabular}{lclc}\n",
       "\\toprule\n",
       "\\textbf{Dep. Variable:}                   &      price       & \\textbf{  R-squared:         } &     0.682   \\\\\n",
       "\\textbf{Model:}                           &       OLS        & \\textbf{  Adj. R-squared:    } &     0.674   \\\\\n",
       "\\textbf{Method:}                          &  Least Squares   & \\textbf{  F-statistic:       } &     87.52   \\\\\n",
       "\\textbf{Date:}                            & Thu, 05 Jun 2025 & \\textbf{  Prob (F-statistic):} & 9.07e-123   \\\\\n",
       "\\textbf{Time:}                            &     20:08:43     & \\textbf{  Log-Likelihood:    } &   -8331.5   \\\\\n",
       "\\textbf{No. Observations:}                &         545      & \\textbf{  AIC:               } & 1.669e+04   \\\\\n",
       "\\textbf{Df Residuals:}                    &         531      & \\textbf{  BIC:               } & 1.675e+04   \\\\\n",
       "\\textbf{Df Model:}                        &          13      & \\textbf{                     } &             \\\\\n",
       "\\textbf{Covariance Type:}                 &    nonrobust     & \\textbf{                     } &             \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "\\begin{tabular}{lcccccc}\n",
       "                                          & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]}  \\\\\n",
       "\\midrule\n",
       "\\textbf{const}                            &    4.277e+04  &     2.64e+05     &     0.162  &         0.872        &    -4.76e+05    &     5.62e+05     \\\\\n",
       "\\textbf{area}                             &     244.1394  &       24.289     &    10.052  &         0.000        &      196.425    &      291.853     \\\\\n",
       "\\textbf{bedrooms}                         &    1.148e+05  &     7.26e+04     &     1.581  &         0.114        &    -2.78e+04    &     2.57e+05     \\\\\n",
       "\\textbf{bathrooms}                        &    9.877e+05  &     1.03e+05     &     9.555  &         0.000        &     7.85e+05    &     1.19e+06     \\\\\n",
       "\\textbf{stories}                          &    4.508e+05  &     6.42e+04     &     7.026  &         0.000        &     3.25e+05    &     5.77e+05     \\\\\n",
       "\\textbf{parking}                          &    2.771e+05  &     5.85e+04     &     4.735  &         0.000        &     1.62e+05    &     3.92e+05     \\\\\n",
       "\\textbf{mainroad\\_yes}                    &    4.213e+05  &     1.42e+05     &     2.962  &         0.003        &     1.42e+05    &     7.01e+05     \\\\\n",
       "\\textbf{guestroom\\_yes}                   &    3.005e+05  &     1.32e+05     &     2.282  &         0.023        &     4.18e+04    &     5.59e+05     \\\\\n",
       "\\textbf{basement\\_yes}                    &    3.501e+05  &      1.1e+05     &     3.175  &         0.002        &     1.33e+05    &     5.67e+05     \\\\\n",
       "\\textbf{hotwaterheating\\_yes}             &    8.554e+05  &     2.23e+05     &     3.833  &         0.000        &     4.17e+05    &     1.29e+06     \\\\\n",
       "\\textbf{airconditioning\\_yes}             &     8.65e+05  &     1.08e+05     &     7.983  &         0.000        &     6.52e+05    &     1.08e+06     \\\\\n",
       "\\textbf{prefarea\\_yes}                    &    6.515e+05  &     1.16e+05     &     5.632  &         0.000        &     4.24e+05    &     8.79e+05     \\\\\n",
       "\\textbf{furnishingstatus\\_semi-furnished} &   -4.634e+04  &     1.17e+05     &    -0.398  &         0.691        &    -2.75e+05    &     1.83e+05     \\\\\n",
       "\\textbf{furnishingstatus\\_unfurnished}    &   -4.112e+05  &     1.26e+05     &    -3.258  &         0.001        &    -6.59e+05    &    -1.63e+05     \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "\\begin{tabular}{lclc}\n",
       "\\textbf{Omnibus:}       & 97.909 & \\textbf{  Durbin-Watson:     } &    1.209  \\\\\n",
       "\\textbf{Prob(Omnibus):} &  0.000 & \\textbf{  Jarque-Bera (JB):  } &  258.281  \\\\\n",
       "\\textbf{Skew:}          &  0.895 & \\textbf{  Prob(JB):          } & 8.22e-57  \\\\\n",
       "\\textbf{Kurtosis:}      &  5.859 & \\textbf{  Cond. No.          } & 3.49e+04  \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "%\\caption{OLS Regression Results}\n",
       "\\end{center}\n",
       "\n",
       "Notes: \\newline\n",
       " [1] Standard Errors assume that the covariance matrix of the errors is correctly specified. \\newline\n",
       " [2] The condition number is large, 3.49e+04. This might indicate that there are \\newline\n",
       " strong multicollinearity or other numerical problems."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                  price   R-squared:                       0.682\n",
       "Model:                            OLS   Adj. R-squared:                  0.674\n",
       "Method:                 Least Squares   F-statistic:                     87.52\n",
       "Date:                Thu, 05 Jun 2025   Prob (F-statistic):          9.07e-123\n",
       "Time:                        20:08:43   Log-Likelihood:                -8331.5\n",
       "No. Observations:                 545   AIC:                         1.669e+04\n",
       "Df Residuals:                     531   BIC:                         1.675e+04\n",
       "Df Model:                          13                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "===================================================================================================\n",
       "                                      coef    std err          t      P>|t|      [0.025      0.975]\n",
       "---------------------------------------------------------------------------------------------------\n",
       "const                            4.277e+04   2.64e+05      0.162      0.872   -4.76e+05    5.62e+05\n",
       "area                              244.1394     24.289     10.052      0.000     196.425     291.853\n",
       "bedrooms                         1.148e+05   7.26e+04      1.581      0.114   -2.78e+04    2.57e+05\n",
       "bathrooms                        9.877e+05   1.03e+05      9.555      0.000    7.85e+05    1.19e+06\n",
       "stories                          4.508e+05   6.42e+04      7.026      0.000    3.25e+05    5.77e+05\n",
       "parking                          2.771e+05   5.85e+04      4.735      0.000    1.62e+05    3.92e+05\n",
       "mainroad_yes                     4.213e+05   1.42e+05      2.962      0.003    1.42e+05    7.01e+05\n",
       "guestroom_yes                    3.005e+05   1.32e+05      2.282      0.023    4.18e+04    5.59e+05\n",
       "basement_yes                     3.501e+05    1.1e+05      3.175      0.002    1.33e+05    5.67e+05\n",
       "hotwaterheating_yes              8.554e+05   2.23e+05      3.833      0.000    4.17e+05    1.29e+06\n",
       "airconditioning_yes               8.65e+05   1.08e+05      7.983      0.000    6.52e+05    1.08e+06\n",
       "prefarea_yes                     6.515e+05   1.16e+05      5.632      0.000    4.24e+05    8.79e+05\n",
       "furnishingstatus_semi-furnished -4.634e+04   1.17e+05     -0.398      0.691   -2.75e+05    1.83e+05\n",
       "furnishingstatus_unfurnished    -4.112e+05   1.26e+05     -3.258      0.001   -6.59e+05   -1.63e+05\n",
       "==============================================================================\n",
       "Omnibus:                       97.909   Durbin-Watson:                   1.209\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              258.281\n",
       "Skew:                           0.895   Prob(JB):                     8.22e-57\n",
       "Kurtosis:                       5.859   Cond. No.                     3.49e+04\n",
       "==============================================================================\n",
       "\n",
       "Notes:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[2] The condition number is large, 3.49e+04. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当我们把显著区间设定为0.05时，以上结果的P值可以看出，模型认为以下因素对房屋价格没有显著性影响：卧室数、是否为简装房。此外，常数（表示线性方程的截距）的P值也很大，说明也没有显著影响。\n",
    "\n",
    "可以把这些变量移除后，再次建立线性回归模型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = X.drop([\"const\",\"bedrooms\",\"furnishingstatus_semi-furnished\"],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = sm.OLS(y,X).fit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>          <td>price</td>      <th>  R-squared (uncentered):</th>      <td>   0.957</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared (uncentered):</th> <td>   0.956</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th>          <td>   1088.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Thu, 05 Jun 2025</td> <th>  Prob (F-statistic):</th>           <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:13:32</td>     <th>  Log-Likelihood:    </th>          <td> -8333.5</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td>   545</td>      <th>  AIC:               </th>          <td>1.669e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>   534</td>      <th>  BIC:               </th>          <td>1.674e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>    11</td>      <th>                     </th>              <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>              <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "                <td></td>                  <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>area</th>                         <td>  257.5854</td> <td>   22.577</td> <td>   11.409</td> <td> 0.000</td> <td>  213.234</td> <td>  301.936</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>                    <td> 1.071e+06</td> <td> 9.27e+04</td> <td>   11.553</td> <td> 0.000</td> <td> 8.89e+05</td> <td> 1.25e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>stories</th>                      <td> 5.084e+05</td> <td> 5.71e+04</td> <td>    8.898</td> <td> 0.000</td> <td> 3.96e+05</td> <td> 6.21e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>parking</th>                      <td> 2.793e+05</td> <td> 5.83e+04</td> <td>    4.794</td> <td> 0.000</td> <td> 1.65e+05</td> <td> 3.94e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>mainroad_yes</th>                 <td> 4.672e+05</td> <td> 1.27e+05</td> <td>    3.679</td> <td> 0.000</td> <td> 2.18e+05</td> <td> 7.17e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>guestroom_yes</th>                <td> 2.851e+05</td> <td> 1.31e+05</td> <td>    2.172</td> <td> 0.030</td> <td> 2.72e+04</td> <td> 5.43e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>basement_yes</th>                 <td> 4.016e+05</td> <td> 1.07e+05</td> <td>    3.765</td> <td> 0.000</td> <td> 1.92e+05</td> <td> 6.11e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>hotwaterheating_yes</th>          <td> 8.668e+05</td> <td> 2.23e+05</td> <td>    3.884</td> <td> 0.000</td> <td> 4.28e+05</td> <td> 1.31e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>airconditioning_yes</th>          <td> 8.543e+05</td> <td> 1.07e+05</td> <td>    7.952</td> <td> 0.000</td> <td> 6.43e+05</td> <td> 1.07e+06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>prefarea_yes</th>                 <td> 6.443e+05</td> <td> 1.15e+05</td> <td>    5.594</td> <td> 0.000</td> <td> 4.18e+05</td> <td> 8.71e+05</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>furnishingstatus_unfurnished</th> <td>-3.493e+05</td> <td> 9.49e+04</td> <td>   -3.679</td> <td> 0.000</td> <td>-5.36e+05</td> <td>-1.63e+05</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>94.840</td> <th>  Durbin-Watson:     </th> <td>   1.262</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td> <th>  Jarque-Bera (JB):  </th> <td> 251.889</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td> 0.865</td> <th>  Prob(JB):          </th> <td>2.01e-55</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 5.845</td> <th>  Cond. No.          </th> <td>2.74e+04</td>\n",
       "</tr>\n",
       "</table><br/><br/>Notes:<br/>[1] R² is computed without centering (uncentered) since the model does not contain a constant.<br/>[2] Standard Errors assume that the covariance matrix of the errors is correctly specified.<br/>[3] The condition number is large, 2.74e+04. This might indicate that there are<br/>strong multicollinearity or other numerical problems."
      ],
      "text/latex": [
       "\\begin{center}\n",
       "\\begin{tabular}{lclc}\n",
       "\\toprule\n",
       "\\textbf{Dep. Variable:}                &      price       & \\textbf{  R-squared (uncentered):}      &     0.957   \\\\\n",
       "\\textbf{Model:}                        &       OLS        & \\textbf{  Adj. R-squared (uncentered):} &     0.956   \\\\\n",
       "\\textbf{Method:}                       &  Least Squares   & \\textbf{  F-statistic:       }          &     1088.   \\\\\n",
       "\\textbf{Date:}                         & Thu, 05 Jun 2025 & \\textbf{  Prob (F-statistic):}          &     0.00    \\\\\n",
       "\\textbf{Time:}                         &     20:13:32     & \\textbf{  Log-Likelihood:    }          &   -8333.5   \\\\\n",
       "\\textbf{No. Observations:}             &         545      & \\textbf{  AIC:               }          & 1.669e+04   \\\\\n",
       "\\textbf{Df Residuals:}                 &         534      & \\textbf{  BIC:               }          & 1.674e+04   \\\\\n",
       "\\textbf{Df Model:}                     &          11      & \\textbf{                     }          &             \\\\\n",
       "\\textbf{Covariance Type:}              &    nonrobust     & \\textbf{                     }          &             \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "\\begin{tabular}{lcccccc}\n",
       "                                       & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]}  \\\\\n",
       "\\midrule\n",
       "\\textbf{area}                          &     257.5854  &       22.577     &    11.409  &         0.000        &      213.234    &      301.936     \\\\\n",
       "\\textbf{bathrooms}                     &    1.071e+06  &     9.27e+04     &    11.553  &         0.000        &     8.89e+05    &     1.25e+06     \\\\\n",
       "\\textbf{stories}                       &    5.084e+05  &     5.71e+04     &     8.898  &         0.000        &     3.96e+05    &     6.21e+05     \\\\\n",
       "\\textbf{parking}                       &    2.793e+05  &     5.83e+04     &     4.794  &         0.000        &     1.65e+05    &     3.94e+05     \\\\\n",
       "\\textbf{mainroad\\_yes}                 &    4.672e+05  &     1.27e+05     &     3.679  &         0.000        &     2.18e+05    &     7.17e+05     \\\\\n",
       "\\textbf{guestroom\\_yes}                &    2.851e+05  &     1.31e+05     &     2.172  &         0.030        &     2.72e+04    &     5.43e+05     \\\\\n",
       "\\textbf{basement\\_yes}                 &    4.016e+05  &     1.07e+05     &     3.765  &         0.000        &     1.92e+05    &     6.11e+05     \\\\\n",
       "\\textbf{hotwaterheating\\_yes}          &    8.668e+05  &     2.23e+05     &     3.884  &         0.000        &     4.28e+05    &     1.31e+06     \\\\\n",
       "\\textbf{airconditioning\\_yes}          &    8.543e+05  &     1.07e+05     &     7.952  &         0.000        &     6.43e+05    &     1.07e+06     \\\\\n",
       "\\textbf{prefarea\\_yes}                 &    6.443e+05  &     1.15e+05     &     5.594  &         0.000        &     4.18e+05    &     8.71e+05     \\\\\n",
       "\\textbf{furnishingstatus\\_unfurnished} &   -3.493e+05  &     9.49e+04     &    -3.679  &         0.000        &    -5.36e+05    &    -1.63e+05     \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "\\begin{tabular}{lclc}\n",
       "\\textbf{Omnibus:}       & 94.840 & \\textbf{  Durbin-Watson:     } &    1.262  \\\\\n",
       "\\textbf{Prob(Omnibus):} &  0.000 & \\textbf{  Jarque-Bera (JB):  } &  251.889  \\\\\n",
       "\\textbf{Skew:}          &  0.865 & \\textbf{  Prob(JB):          } & 2.01e-55  \\\\\n",
       "\\textbf{Kurtosis:}      &  5.845 & \\textbf{  Cond. No.          } & 2.74e+04  \\\\\n",
       "\\bottomrule\n",
       "\\end{tabular}\n",
       "%\\caption{OLS Regression Results}\n",
       "\\end{center}\n",
       "\n",
       "Notes: \\newline\n",
       " [1] R² is computed without centering (uncentered) since the model does not contain a constant. \\newline\n",
       " [2] Standard Errors assume that the covariance matrix of the errors is correctly specified. \\newline\n",
       " [3] The condition number is large, 2.74e+04. This might indicate that there are \\newline\n",
       " strong multicollinearity or other numerical problems."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                                 OLS Regression Results                                \n",
       "=======================================================================================\n",
       "Dep. Variable:                  price   R-squared (uncentered):                   0.957\n",
       "Model:                            OLS   Adj. R-squared (uncentered):              0.956\n",
       "Method:                 Least Squares   F-statistic:                              1088.\n",
       "Date:                Thu, 05 Jun 2025   Prob (F-statistic):                        0.00\n",
       "Time:                        20:13:32   Log-Likelihood:                         -8333.5\n",
       "No. Observations:                 545   AIC:                                  1.669e+04\n",
       "Df Residuals:                     534   BIC:                                  1.674e+04\n",
       "Df Model:                          11                                                  \n",
       "Covariance Type:            nonrobust                                                  \n",
       "================================================================================================\n",
       "                                   coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------------------------\n",
       "area                           257.5854     22.577     11.409      0.000     213.234     301.936\n",
       "bathrooms                     1.071e+06   9.27e+04     11.553      0.000    8.89e+05    1.25e+06\n",
       "stories                       5.084e+05   5.71e+04      8.898      0.000    3.96e+05    6.21e+05\n",
       "parking                       2.793e+05   5.83e+04      4.794      0.000    1.65e+05    3.94e+05\n",
       "mainroad_yes                  4.672e+05   1.27e+05      3.679      0.000    2.18e+05    7.17e+05\n",
       "guestroom_yes                 2.851e+05   1.31e+05      2.172      0.030    2.72e+04    5.43e+05\n",
       "basement_yes                  4.016e+05   1.07e+05      3.765      0.000    1.92e+05    6.11e+05\n",
       "hotwaterheating_yes           8.668e+05   2.23e+05      3.884      0.000    4.28e+05    1.31e+06\n",
       "airconditioning_yes           8.543e+05   1.07e+05      7.952      0.000    6.43e+05    1.07e+06\n",
       "prefarea_yes                  6.443e+05   1.15e+05      5.594      0.000    4.18e+05    8.71e+05\n",
       "furnishingstatus_unfurnished -3.493e+05   9.49e+04     -3.679      0.000   -5.36e+05   -1.63e+05\n",
       "==============================================================================\n",
       "Omnibus:                       94.840   Durbin-Watson:                   1.262\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              251.889\n",
       "Skew:                           0.865   Prob(JB):                     2.01e-55\n",
       "Kurtosis:                       5.845   Cond. No.                     2.74e+04\n",
       "==============================================================================\n",
       "\n",
       "Notes:\n",
       "[1] R² is computed without centering (uncentered) since the model does not contain a constant.\n",
       "[2] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[3] The condition number is large, 2.74e+04. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，当我们把P值较大的自变量从线性回归模型中移除后，R方的值从0.682增长到了0.957，提高了模型对现有数据的拟合度。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据各个自变量在线性回归方程中的系数来看，模型预测以下因素的增加（或存在）会显著增加房屋价格：房屋面积、厕所数、楼层数、车库容量、位于主路、有客房、有地下室、有热水器、有空调、位于城市首选社区。\n",
    "\n",
    "线性回归模型预测以下因素的增加（或存在）会显著降低房屋价格：房屋未经装修，为毛坯房。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 要预测房价的房屋的信息：\n",
    "# 面积为6500平方英尺，有4个卧室、2个厕所，总共2层，不位于主路，无客人房，带地下室，有热水器，没有空调，车位数为2，位于城市首选社区，简装修"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>mainroad</th>\n",
       "      <th>guestroom</th>\n",
       "      <th>basement</th>\n",
       "      <th>hotwaterheating</th>\n",
       "      <th>airconditioning</th>\n",
       "      <th>parking</th>\n",
       "      <th>prefarea</th>\n",
       "      <th>furnishingstatus</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>2</td>\n",
       "      <td>yes</td>\n",
       "      <td>semi-furnished</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   area  bedrooms  bathrooms  stories mainroad guestroom basement  \\\n",
       "0  6500         4          2        2       no        no      yes   \n",
       "\n",
       "  hotwaterheating airconditioning  parking prefarea furnishingstatus  \n",
       "0             yes              no        2      yes   semi-furnished  "
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "price_to_predict = pd.DataFrame({'area': [6500], 'bedrooms': [4], 'bathrooms': [2], \n",
    "                                 'stories': [2], 'mainroad': ['no'], 'guestroom': ['no'],\n",
    "                                 'basement': ['yes'], 'hotwaterheating': ['yes'],\n",
    "                                 'airconditioning': ['no'], 'parking': 2, 'prefarea': ['yes'],\n",
    "                                 'furnishingstatus': ['semi-furnished']})\n",
    "price_to_predict"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们需要把分类变量的类型转换为Category，并且通过`categories`参数，让程序知道所有可能的分类值。这样做的原因是，预测数据包含的分类可能不全。我们需要确保引入虚拟变量的时候，不会漏掉某个或某些分类。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "price_to_predict['mainroad'] = pd.Categorical(price_to_predict['mainroad'], categories=['no', 'yes'])\n",
    "price_to_predict['guestroom'] = pd.Categorical(price_to_predict['guestroom'], categories=['no', 'yes'])\n",
    "price_to_predict['basement'] = pd.Categorical(price_to_predict['basement'], categories=['no', 'yes'])\n",
    "price_to_predict['hotwaterheating'] = pd.Categorical(price_to_predict['hotwaterheating'], categories=['no', 'yes'])\n",
    "price_to_predict['airconditioning'] = pd.Categorical(price_to_predict['airconditioning'], categories=['no', 'yes'])\n",
    "price_to_predict['prefarea'] = pd.Categorical(price_to_predict['prefarea'], categories=['no', 'yes'])\n",
    "price_to_predict['furnishingstatus'] = pd.Categorical(price_to_predict['furnishingstatus'], categories=['furnished', 'semi-furnished', 'unfurnished'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下一步，对分类变量引入虚拟变量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>stories</th>\n",
       "      <th>parking</th>\n",
       "      <th>mainroad_yes</th>\n",
       "      <th>guestroom_yes</th>\n",
       "      <th>basement_yes</th>\n",
       "      <th>hotwaterheating_yes</th>\n",
       "      <th>airconditioning_yes</th>\n",
       "      <th>prefarea_yes</th>\n",
       "      <th>furnishingstatus_semi-furnished</th>\n",
       "      <th>furnishingstatus_unfurnished</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6500</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   area  bedrooms  bathrooms  stories  parking  mainroad_yes  guestroom_yes  \\\n",
       "0  6500         4          2        2        2             0              0   \n",
       "\n",
       "   basement_yes  hotwaterheating_yes  airconditioning_yes  prefarea_yes  \\\n",
       "0             1                    1                    0             1   \n",
       "\n",
       "   furnishingstatus_semi-furnished  furnishingstatus_unfurnished  \n",
       "0                                1                             0  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "price_to_predict = pd.get_dummies(price_to_predict, drop_first=True, \n",
    "                                  columns=['mainroad', 'guestroom',\n",
    "                                           'basement', 'hotwaterheating',\n",
    "                                           'airconditioning','prefarea', \n",
    "                                           'furnishingstatus'], dtype=int)\n",
    "price_to_predict.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "price_to_predict = price_to_predict.drop(['bedrooms', 'furnishingstatus_semi-furnished'], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来就可以调用线性回归模型的`predict`方法，获得预测价格。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    7.303754e+06\n",
       "dtype: float64"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predicted_value = model.predict(price_to_predict)\n",
    "predicted_value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
